Hello.
Voilà, j'a un fichier contenant ceci :
Par exemple.Code:
1
2
3
4
5
6
7
8
9 24 46 91 51 84 64 35 62 15
Et j'aimerais calculer la somme de ces nombres, à l'adre d'un shell.
Si jamais vous avez la solution... avec bc. merci
chris
Version imprimable
Hello.
Voilà, j'a un fichier contenant ceci :
Par exemple.Code:
1
2
3
4
5
6
7
8
9 24 46 91 51 84 64 35 62 15
Et j'aimerais calculer la somme de ces nombres, à l'adre d'un shell.
Si jamais vous avez la solution... avec bc. merci
chris
Bonjour,
Voici une solution utilisant Vi et bc :
Avec Vi je remplaces les sauts de ligne par un espace, je supprimes les esapce à la fin de la ligne si il y en a, je remplace plusieurs espaces à suivre par un seul espace, je converti les espaces en ' + ', je sauvegarde dans le fichier test.txt.new. Puis j'envoie ce fichier dans bc qui va calculer la somme et enfin je supprime le fichier tst.txt.new.Citation:
vi -c '%s/\n/ /|%s/ \+$//|%s/ \+/ /g|%s/ / + /g|:w! %.new|:q!' tst.txt ; cat tst.txt.new | bc; rm -f tst.txt.new
Variation sur le même thème:
Code:
1
2
3
4
5
6 operation='' for nbr in $(cat tonFichier) do operation=$operation$nbr'+' done echo ${operation%+} | bc
une solution avec awk
awk 'BEGIN{ somme=0 } { somme=somme+$0 } END{ print "total : " somme } ' FICHIER.TXT
somme+=$0
C'est bien toutes vos astuces. Mais pour une personne qui essaie d'apprendre le shell, il manque parfois un peu d'explications !