Sommer les lignes d'un fichiers texte [Résolu/Fermé]

Messages postés
74
Date d'inscription
mercredi 20 février 2013
Statut
Membre
Dernière intervention
6 août 2013
- - Dernière réponse : bloomingdals
Messages postés
74
Date d'inscription
mercredi 20 février 2013
Statut
Membre
Dernière intervention
6 août 2013
- 18 avril 2013 à 16:41
Bonsoir,
j'ai écrit un script shell qui prend un fichier en entrée et somme ses lignes (les lignes étant des entiers). mais ca ne fonctionne pas.

voici mon script
sum=0
while read ligne
do sum=expr $sum + $ligne
done < test.txt
echo "la somme est $sum"



est ce que c'est possible de m'aider à le faire fonctionner merci bcp
Afficher la suite 

6 réponses

Messages postés
17951
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
29 novembre 2019
4516
0
Merci
hello
il faut exécuter la commande expr, un simple = ne le fait pas
do sum=$(expr $sum + $ligne)
Messages postés
74
Date d'inscription
mercredi 20 février 2013
Statut
Membre
Dernière intervention
6 août 2013
1
0
Merci
ah oui c'est vrai merci bcp ca fonctionne parfaitement.
est ce que c'est possible de retourner la somme finale dans une variable pour l'exploiter plus tart (disons par un code java)?? de cette facon quand j'appelle le script il me retourne un entier?
Messages postés
17951
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
29 novembre 2019
4516
0
Merci
la variable $sum contient le total, elle peut être passée en paramètres ou autre
Messages postés
74
Date d'inscription
mercredi 20 février 2013
Statut
Membre
Dernière intervention
6 août 2013
1
0
Merci
ah d'accord merci. Autre question: je veux renvoyer cette somme dans le même fichiers de manière à écraser son ancien contenu par la valeur sum.
avec la reddirection >> ca ecrit à la fion du fichier et avec > ca me renvoie un fichier vide!
y'a t-il un moyen de le faire (sans passer par un fichier temporaire ca c'est facile j'arrive a le faire)
merci
dubcek
Messages postés
17951
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
29 novembre 2019
4516 -
non, on ne peut pas écrire dans le fichier qu'on est en train de lire
Messages postés
74
Date d'inscription
mercredi 20 février 2013
Statut
Membre
Dernière intervention
6 août 2013
1
0
Merci
non je veux dire après que l'opération de lecture ne soit terminée (après être sortie de la boucle while), il n'y a pas de moyen pour écraser le contenu de test.txt avec la valeur de sum??
dubcek
Messages postés
17951
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
29 novembre 2019
4516 -
...
...
done < test.txt
echo "la somme est $sum"
echo $sum > test.txt
Messages postés
74
Date d'inscription
mercredi 20 février 2013
Statut
Membre
Dernière intervention
6 août 2013
1
0
Merci
oui exactement ca marche merci bcp