Сравните и посчитайте в Ubuntu

У меня есть файл с 2 столбцами, как это:

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";
     }
    
Другие вопросы по тегам