簡體   English   中英

如何使用awk計算特定列中的特定位數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM