如何使用awk计算特定列中特定数字的数量

How to use awk counting the number of specificed digit in certain column

如何统计某列的匹配值?

我有一个文件:(wm.csv)

我执行了命令以获取特定列中的目标值:tail -n +497 wm.csv | awk -F"," '=="2" {print " "}'

然后我得到以下我想要的输出数据:

hit 2 hit 2 hit 2 hit 2 miss hit 2 hit 2 hit 2 hit 2 hit 2 hit 2 hit 2 incorrect 1 hit 2 hit 2 hit 2

我想计算第二列中“2”的个数,以便进行简单的数学运算,例如:列中的总数字除以行的总数。具体来说,在这种情况下,它看起来像:14(第二列中的十四个“2”)/ 16(总行数)

以下是我试过的命令,但这不起作用: tail -n +497 wm.csv | awk -F"," '=="2" {count=0;} { if ( == "2") count+=1 } {print ,,$count }'

谢谢

将发布的数据作为输入文件

$ awk '==2{c++} END{print NR,c,c/NR}' file

16 14 0.875
awk  '([=10=] ~ "hit 2"){count += 1}  END{print count, FNR, count/FNR}' sample.csv
14 16 0.875

我用~比较整行($0)匹配"hit 2",如果是计数器加1。FNR是文件记录数,也就是总数行号。