11
votes

Lire du fichier et ajouter des numéros

J'ai un fichier texte avec des entrées comme 123 112 3333 44 2

Comment ajouter ces chiffres et obtenir la somme de ceux-ci.


1 commentaires

@Basilevs bash.


4 Réponses :


14
votes

Exemple: xxx pré>

Voir aussi: Bash Programming Introduction, section sur l'évaluation arithmétique P>

Une autre manière serait d'utiliser BC code>, une langue de calcul de précision arbitraire: P>

$ echo '123 112 3333 44 2' | tr ' ' '\n' | paste -sd+ | bc
3614


0 commentaires

5
votes

Un bash-seulement (non CAT code>) Variation sur Myyn's fort> réponse.

sum=0; for i in $(<number_file); do ((sum += i)); done; echo $sum


1 commentaires

Pour les données d'échantillons d'OP, oui cela fonctionne. Mais pas lorsque des nombres décimaux / flotteurs sont impliqués.



0
votes

Alternativement dans AWK

cat file.txt | awk 'BEGIN {sum=0} {for(i=1; i<=NF; i++) sum+=$i } END {print sum}'


0 commentaires

2
votes

Une seule commande awk le fait-il. Il ne casse pas lorsque vous avez des décimales à ajouter aussi.

awk '{for(i=1;i<=NF;i++)s+=$i}END{print s}' file


0 commentaires