calcular números no final e mesclar a uma linha

1

Então, em um arquivo, eu tenho linhas como estas:

thisdata:thisother:1337
thisdata:thisother:1800
thisdata:thisother:1500
thisdata:thisother:46984

Eu gostaria de produzir:

thisdata:thisother:51621

para todas as linhas, quantidade diferenciada de linhas por conjunto de dados com números alternados no final que gostaria de mesclar.

Mais exemplos:

somedata:somedata:1339

othrsome:othersomemore:14949
othrsome:othersomemore:14949

uruie:eiiwi:1399
uruie:eiiwi:1399
uruie:eiiwi:1399
    
por jano 22.06.2015 / 11:27

1 resposta

3

Usando awk e uma matriz associativa codificada nas duas primeiras colunas:

awk -F : '{ sum[$1 FS $2] += $3; }; END { OFS=FS; for (key in sum) print key, sum[key]; }' file
    
por 22.06.2015 / 11:38