Você pode fazer:
awk -F: '{for(i=2;i<=NF;i++) sum[$1]+=$i} END{for(j in sum) if (sum[j] > max) \
{n=j; max=sum[j]}; print n, max}' file.txt
-
-F:
define o separador de campo como:
-
{for(i=2;i<=NF;i++) sum[$1]+=$i}
itera sobre os campos e cria uma matrizsum
com os valores do campo a partir da segunda adicionada -
No final (
END
),for(j in sum) if (sum[j] > max) {n=j; max=sum[j]}; print n, max}
itera sobre os elementos da matriz e encontra o número máximo e imprime com o nome na frente
Exemplo:
% cat file.txt
James:230:200:200
Kory:140:204:240
Hogan:293:234:100
Logan:233:444:200
% awk -F: '{for(i=2;i<=NF;i++) sum[$1]+=$i} END{for(j in sum) if (sum[j] > max) {n=j; max=sum[j]}; print n, max}' file.txt
Logan 877