Onde está a linha entre "comandos shell" e "código"? Este exemplo talvez esteja além dessa linha, mas é apenas uma função de agregação rápida em awk
que eu já escrevi para outro propósito (mais elaborado), então também posso postá-lo.
Supondo que os arquivos estejam localizados no diretório dir/
, awk
poderá somar como tal:
awk '
{fruits[$2]+=$1}
END { for (fruit in fruits) {printf "%6s %s\n", fruits[fruit], fruit} }
' dir/* | sort -rn
Divisão:
- Verifique todas as linhas em todos os arquivos e adicione o valor do primeiro campo ao valor existente do índice dessa fruta na matriz
fruits
(ou crie esse índice, se ele não existir). - Quando os arquivos tiverem sido percorridos, faça um loop pelos índices em
fruits
e imprima seu valor e seu nome no formato especificado. - A classificação da matriz em
awk
é possível, mas é muito mais fácil usar apenassort
.-rn
classifica numericamente em ordem decrescente.