awk if / else抛出错误

时间:2018-05-31 13:24:20

标签: awk

我在CSV文件上尝试了这个单一命令,效果很好。

awk -F, '$44==0 {sum += $45 } END { print sum}' Consolidated.csv

8448089

基本上,这会查看csv中的字段44,如果匹配,则会汇总字段45中的值。

当字段44值在04之间变化时,我希望扩展此逻辑,因此希望通过扩展上述逻辑来创建if-else条件但不成功。有人能指出我正确的方向吗?

2 个答案:

答案 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