我有一个包含两列的文件,如下所示:
Product Cost
ab 5
ab 7
bl 1
bl 8
ce 4
我想搜索“ab”和“bl”,然后需要计算它们的成本,并显示哪一个更大
我尝试过 (grep "ab" myfile | numsum -c 2) 和 (grep "bl" myfile | numsum -c 2),但无法比较它们的总和并打印结果。有什么帮助吗?
答案1
$ awk '/ab|bl/{s[$1]+=$2} END{for (k in s) print "sum of",k,"is",s[k]; if (a["ab"]>a["bl"]) print "ab is greater"; else print "bl is greater";}' myfile
sum of ab is 12
sum of bl is 9
bl is greater
怎么运行的
/ab|bl/{s[$1]+=$2}
对于包含 ab 或 bl 的行,计算第 2 列的总和。
当我们读取完myfile之后,使用
print
语句显示结果:END{ for (k in s) print "sum of",k,"is",s[k]; if (a["ab"]>a["bl"]) print "ab is greater" else print "bl is greater"; }