在 Ubuntu 中比较和计数

在 Ubuntu 中比较和计数

我有一个包含两列的文件,如下所示:

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";
     }
    

相关内容