52 votes

Comment additionner les nombres sur les lignes d'un fichier ?

J'ai un fichier qui ressemble à ceci :

1
3
4
1
4
3
1
2

Comment puis-je trouver le total (c'est-à-dire 1+3+4+1+4+3+1+2 = 19) ?

2voto

Bastian Bittorf Points 121

Une approche simple consiste à utiliser une fonction intégrée de votre Shell :

SUM=0; while read N; do SUM=$((SUM+N)); done </path/to/file
echo $SUM

Ce programme lit votre fichier dans le sens des lignes, fait la somme et imprime le résultat.

Si vous souhaitez utiliser un tuyau et n'utiliser que la première ligne, voici comment procéder :

SUM=0
your_command | while read -r LINE; do for N in $LINE; do break; done; SUM=$((SUM+N)); done
echo $SUM

L'obtention du premier élément se fait de la manière suivante :

LIST="foo bar baz"
for OBJ in $LIST; do break; done
echo $OBJ

foo

1voto

zomfg_zombie Points 121

Il s'agit d'une utilisation assez simple de bash l'écriture.

SUM=0; for line in `cat file.txt`; do SUM=$((SUM + line)); done

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X