Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/04/2014, à 09:27

jachtako

addition

Bonjour,

j'ai besoin d'aide,

voila dans un ficher monFichier.txt j'ai des caractères qui appairassent

36856
685
0
644
6
68
0
7
57
64
684

ma question est de savoir comment écrire un script Shell qu'il puisse additionner les caractères dans le fichier et me données la somme
merci.

Hors ligne

#2 Le 17/04/2014, à 09:47

slasher-fun

Re : addition

Bonjour,

Dans les règles du forum il y a écrit :

La fonction "Signaler" en bas de chaque message sert à attirer l'attention des modérateurs sur un message en particulier, au cas où celui-ci ne respecterait pas la Charte du Forum, ou en cas d'oubli de passsage en [résolu] de la part de l'auteur, sujet initié dans une section erronée, etc. Ne pas l'utiliser comme un 'Up', 'Urgent' ou demande expresse d'aide.

Hors ligne

#3 Le 17/04/2014, à 09:51

pingouinux

Re : addition

Bonjour,
En bash

$ N=0;while read n;do printf "       %6d\n" $n;((N+=n));done <monFichier.txt;printf "Total= %6d\n" $N
        36856
          685
            0
          644
            6
           68
            0
            7
           57
           64
          684
Total=  39071

Hors ligne

#4 Le 17/04/2014, à 10:12

credenhill

Re : addition

hello

$ (printf "%s+" $(cat fichier) ; echo 0) | bc
39071

Hors ligne

#5 Le 17/04/2014, à 10:24

pingouinux

Re : addition

Toujours aussi concis, credenhill, et je préfère ta solution.

Hors ligne

#6 Le 17/04/2014, à 11:11

credenhill

Re : addition

mais comment faire pour ajouter un 0\n en fin de ligne en un seul printf?
edit: et aussi

$ sed -e :a -e '$!N ;s/\n/+/; ta' fichier | bc
39071
$ awk '{tot+=$1} END {print tot}' fichier
39071

Dernière modification par credenhill (Le 17/04/2014, à 11:31)

Hors ligne

#7 Le 17/04/2014, à 12:30

Watael

Re : addition

salut,

en bash

$ cat > Fichier.txt
36856
685
0
644
6
68
0
7
57
64
684
^D
$ ar=( $(< Fichier.txt ) )
$ ( IFS='+'; echo "Total= $(( ${ar[*]} ))" )
Total= 39071

Dernière modification par Watael (Le 17/04/2014, à 12:30)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#8 Le 17/04/2014, à 13:53

credenhill

Re : addition

n'oublions pas dc

$ sed '2,$s/$/+/; $s/$/\np/' fichier | dc
39071

Hors ligne