Un script awk
est tout ce dont vous avez besoin pour cela, car il a grep
installations construit dans le cadre de la langue.
Disons que votre fichier réel se compose de:
asdfb zz 1
adfsdf yyy 2
sdfdf xx 3
et que vous voulez résumer la troisième colonne. Vous pouvez utiliser:
echo 'asdfb zz 1
adfsdf yyy 2
sdfdf xx 3' | awk '
BEGIN {s=0;}
{s = s + $3;}
END {print s;}'
La clause BEGIN est exécutée avant le traitement des lignes, la clause END après le traitement de toutes les lignes.
L'autre clause se produit pour chaque ligne, mais vous pouvez ajouter plus de clauses pour modifier le comportement en fonction de toutes sortes de choses (grep
-py choses).
Il peut être d'utiliser toujours la dernière colonne en changeant 3 $ à $ NF: echo 'asdfb zz 1 adfsdf yyy 2 sdfdf xx 3' | awk 'BEGIN {s = 0;} {s = s + $ NF;} FIN {print s;}' –
Je voulais rester simple, @Matthew, plutôt que de déchaîner tout l'arsenal nucléaire qui est awk :-) peut très bien faire n'importe quoi avec. – paxdiablo
La clause BEGIN est inutile, puisque les variables par défaut à 0 de toute façon.Il n'est pas non plus nécessaire de diviser ceci en plusieurs lignes: awk '{s + = $ 3} FIN {print s}' –