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

如何用awk统计各文件指定列中字符串的出现次数并输出结果

用awk统计指定列中目标字符串的出现次数

需求

使用awk工具统计每个文件指定列中目标字符串(如"col1")的出现次数,并输出文件名与对应计数。

测试文件内容

现有两个测试文件file.csv和fild.csv,内容如下:

> cat file.csv
col1,col2,col3,col4
col1,col2,col3
col1,col2
col1
col1,col2,col3,col4,col5

> cat fild.csv
col1,col2,col3,col4
col1,col2,col3
col1,col2
col1
col1,col2,col3,col4,col5

期望输出

file.csv,5
fild.csv,5

尝试过程

  • 第一步:输出指定列符合条件的内容
> awk -F, '$1 == "col1" {print $1}' file.csv
col1
col1
col1
col1
col1
  • 第二步:尝试输出文件名与列内容,但缺少逗号分隔符
> awk -F, '$1 == "col1" {print FILENAME $1}' file.csv
file.csvcol1
file.csvcol1
file.csvcol1
file.csvcol1
file.csvcol1
  • 第三步:批量处理文件的尝试
> awk -F, '$1 == "col1" {print FILENAME $1}' fil*.csv
fild.csvcol1
fild.csvcol1
fild.csvcol1
fild.csvcol1
fild.csvcol1
file.csvcol1
file.csvcol1
file.csvcol1
file.csvcol1
file.csvcol1

最终可行命令

awk 'BEGIN{FS=OFS=","} $1 == "col1" {cnt++} ENDFILE{print FILENAME, (cnt>0&&cnt?cnt:"0"); cnt=0}' fil*.csv

执行后输出:

fild.csv,5
file1.csv,0
file.csv,5

内容的提问来源于stack exchange,提问作者HattrickNZ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:35:45