我在CSV文件上尝试了这个命令,效果很好。
awk -F, '$44==0 {sum += $45 } END { print sum}' Consolidated.csv
8448089
基本上,这会查看csv中的字段44
,如果匹配,则汇总字段45
中的值。
当字段44
值在0
和4
之间变化时,我想扩展此逻辑,因此想通过扩展上述逻辑来创建 if-else 条件,但没有成功。有人可以指出我正确的方向吗?
您可以在您的条件下使用 AND&&
运算符:
awk -F, '$44>=0 && $44<=4 {sum += $45 } END { print sum}' Consolidated.csv
如果你想要两个总和(其中第 44 列等于 0,总和介于 0 和 4 之间(,你可以在那里扔另一个 test{block}:
awk -F, '$44>=0 && $44<=4 {sum2 += $45 } $44==0 {sum += $45 } END { print sum, sum2}' Consolidated.csv