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