Addition en bash

Résolu/Fermé
Rhfactor - 2 mars 2010 à 15:37
 Rhfactor - 2 mars 2010 à 21:27
Bonjour,

Je sollicite votre aide concernant une petite manip en bash

J'ai un fichier dont chaque ligne contient des entiers, de la forme suivante:
(sortie en faisant un cat fichier.test):

26
7
342
17
431
83
...
Le fichier contient environ 300000 lignes, je souhaite additionner toutes les valeurs entre elles et voir le résultat et et je ne vois pas comment faire....

Quelqu'un a-t-il une idée?

Merci d'avance!

4 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
2 mars 2010 à 16:18
Salut,

 awk '{SUM += $1} END  {print "Total : "SUM}' fichier.test

;-))
6
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
2 mars 2010 à 16:15
sans testé, je dirai :
((som=0))
for((i=0;i< `wc -l fichier.test `; i++)) 
do (( som+=$(head -n $i fichier.test|tail -n 1 ) ))
done

il doit y avoir plus sioux, avec sed par exemple à la place de head et tail.
2
Bonjour,
Sans tester :

total=0
for nombre in `cat fichier.test`; do
total=`expr $total + $nombre`
done
echo "Total = $total"

Il y a probablement des problèmes de syntaxe, mais l'idée y est...
1
Merci pour vos réponses vous m'avez bien aidé :-)
0