如何使用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
是文件记录数,也就是总数行号。
如何统计某列的匹配值?
我有一个文件:(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
是文件记录数,也就是总数行号。