[英]How to use awk counting the number of specificed digit in certain column
如何計算特定列中的匹配值?
我有一個文件:(wm.csv)
我執行了命令以在某些列中獲取目標值: tail -n +497 wm.csv | awk -F"," '$2=="2" {print $3" "$4}'
tail -n +497 wm.csv | awk -F"," '$2=="2" {print $3" "$4}'
然后得到以下所需的輸出數據:
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=="2" {count=0;} { if ($4 == "2") count+=1 } {print $3,$4,$count }'
tail -n +497 wm.csv | awk -F"," '$2=="2" {count=0;} { if ($4 == "2") count+=1 } {print $3,$4,$count }'
謝謝
將過帳的數據作為輸入文件
$ awk '$2==2{c++} END{print NR,c,c/NR}' file
16 14 0.875
awk '($0 ~ "hit 2"){count += 1} END{print count, FNR, count/FNR}' sample.csv
14 16 0.875
我用~
比較整行($ 0)匹配“ hit 2”,如果它是將計數器加FNR
是記錄的文件號,即總行號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.