Compare e conte no ubuntu

0

Eu tenho um arquivo com duas colunas como esta:

Product Cost
ab        5
ab        7
bl        1
bl        8
ce        4

Eu quero pesquisar por "ab" e "bl" e, em seguida, preciso somar os custos para eles e preciso mostrar qual deles é maior

Eu tentei (grep "ab" myfile | numsum -c 2) e (grep "bl" myfile | numsum -c 2), mas não é possível comparar a soma e imprimir o resultado. Alguma ajuda?

    
por Aquarius24 14.09.2015 / 02:31

1 resposta

3

$ 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

Como funciona

  • /ab|bl/{s[$1]+=$2}

    Para linhas que contêm ab ou bl, soma a coluna 2.

  • Depois que terminarmos de ler o myfile, use as instruções print para exibir os resultados:

    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";
     }
    
por John1024 14.09.2015 / 02:41