You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用grep统计list.txt中词汇在当前目录CSV文件的各自出现次数

统计list.txt中姓名在CSV文件中出现次数的方案

方案1:批量快速统计

执行如下命令即可得到你需要的输出格式:

grep -riohf list.txt --include="*.csv" . | sort | uniq -c | awk '{print $2, $1}'

参数说明:

  • --include="*.csv":限定仅搜索csv格式文件,避免匹配到其他无关文件
  • -r:递归搜索当前目录下的所有子目录
  • -i:忽略大小写匹配,如需大小写敏感可删除该参数
  • -o:仅输出匹配到的内容片段,而非整行
  • -h:输出结果不携带文件名
  • -f list.txt:从list.txt文件中读取需要匹配的关键词
  • 后续管道命令:先对匹配结果排序,再用uniq -c统计每个关键词的出现次数,最后用awk调换顺序输出姓名在前、次数在后的格式。

该方案执行效率高,适合csv文件数量多、数据量大的场景,缺点是不会输出出现次数为0的姓名。

方案2:按list.txt顺序遍历统计

如果你需要输出顺序和list.txt完全一致,且出现次数为0的姓名也显示为0,可执行如下命令:

while read -r name; do
    count=$(grep -riohF "$name" --include="*.csv" . | wc -l)
    echo "$name $count"
done < list.txt

额外新增的-F参数会将姓名作为固定字符串匹配,避免姓名中包含特殊符号时被识别为正则表达式导致匹配错误。

可选优化项

  • 如需避免短姓名匹配到长姓名的子串(比如Viny不会匹配到VinyTest),可给grep增加-w参数开启全单词匹配
  • 如需仅统计CSV中单元格完全等于姓名的场景,可给grep增加-x参数开启整行匹配

内容的提问来源于stack exchange,提问作者Ébano Assumpção

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:15:01