簡體   English   中英

如何使用awk計算具有特定條件的列中數據的數量?

[英]How to count the number of data with specific conditions from columns using awk?

我有以下格式的數據文件

AA 21.1218 14.7862 0.0566269
BB 26.5036 14.5513 19.975
CC 7.82448 1.30605 50.126899
AA 10.0179 4.3786 21.232036
BB 4.80236 4.23255 36.217038
CC 31.475 9.60365 7.237505
AA 8.39392 5.89571 10.30242
......

在這里,我想做的是

檢查第1列和第4列,在第4列中計數大於12的數據數,並在第一列中計數“ BB”(在上面的示例中應為2),然后將20乘以該數。 (最終答案應為40)

我是從

awk '{print ($4>12)}' file > file2
wc -l file2

檢查第四列的編號,並打印行號。

但是顯然他們沒有工作。 看來awk不能在其中使用<或>運算符。 (大於或小於)如何使用cat,awk,sed或grep實現此操作?

謝謝

要打印匹配的行:

awk '$1 == "BB" && $4 > 12' file

(執行隱式操作{print}

您還可以進行計數和乘法:

awk 'BEGIN {count = 0} $1 == "BB" && $4 > 12 {count++} END {print(count * 20)}' file

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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