Aide Script Très Simple [Fermé]

Signaler
-
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
-
Bonjour, un p'tite aide pour mon devoir maison shell bash???
voilà hé bien j'ai un petit sourcis en fait, j'ai un DM assez complexes à réalisé, j'en ai fait la grande partie mais un problème ce pose
je stock dans un fichier des valeurs de ce style, le fichier contient donc
1 2 3 4 3 2 1
mon problème et que j'aimerais les additioner et afficher le résultat à l'écran
j'ai pensé à la commande bc
mais bon j'y arrive pas
please j'dois le rendre samedi matin
merci d'avance

11 réponses

Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 542
Salut,

root@debian:~# cat a
1 2 3 4 3 2 1
root@debian:~# echo $(($(sed -r 's/\s+/+/g' a)))
16
ou
root@debian:~# cat a
1 2 3 4 3 2 1
root@debian:~# echo $(($(sed 's/\s\+/+/g' a)))
16

J'ai besoin de ton aide, ton scrip marche niquel mais pourais tu m'l'expliquer stp :) si tu passes par là biensur :p merci enciore et d'avance
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 542 > Sblew
Salut,

je vais decomposer la commande

avant de commencer il faut savoir
1.
echo c'est une commande qui affiche à l'écran ce qu'on lui passe en argument

echo salut va afficher salut

2.
$(commande) c'est la séquence qui permet d'exécuter une commande
on peut capturer le résultat ou le passer en argument à une autre commande

3.
$((opérations)) permet de faire un calcul aritméthique
$((1+2+3)) va calculer la somme
echo $((1+2+3)) va afficher la somme

4.

sed c'est un streaming editeur
la commande sed 's/\s\+/+/g' a remplace les espaces avec le signe + ce qui permettra de faire l'adition

Donc en 1er temps je remplace les espaces avec +, ensuite avec $() je passe le résultat à echo après avoir faire les opérations avec $(())

lami20j@debian:~/trash$ cat a
1 2 3 4 3 2 1
lami20j@debian:~/trash$ sed 's/\s\+/+/g' a
1+2+3+4+3+2+1
lami20j@debian:~/trash$ echo $(($(sed 's/\s\+/+/g' a)))
16

Bon j'espère que tu as compris ;-)
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 862
Salut,

ou
[tmpfs]$ cat B
1 2 3 4 3 2 1
[tmpfs]$ A=$(< B)
[tmpfs]$ echo $((${A// /+}))
16
[tmpfs]$
;-))
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
469
Bonjour,

[bob 62] Scripts > cat a
1 2 3 4 3 2 1
[bob 63] Scripts > numsum -r a
16
[bob 64] Scripts >

ok je sors ---------------------------------> :-)

:-))
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 862
Fait froid ? Oui ? Ben tant mieux ;-DDDDDD
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
469
Très froid ! -DDDD

mais un jour je reviendrai avec un petit script, un vrai, confectionné avec mes p'tits doigts ! -DD

à titre indicatif :
le paquetage de num-utils c'est ici : http://suso.suso.org/programs/num-utils/
le manpage ici : http://suso.suso.org/programs/num-utils/man1/numsum.html

:-))
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 862
Merci je connaissais pas ;-))
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
469
ben moi non plus, il y a pas 2h ! je voulais trouvé une troisième solution autre que toi et lami20j et en googolant sur "comment additionner des chiffres avec sed ou awk ou autre........sur quoi je tombe ? ...ben sur ça !!!! je l'installe à partir du tar.gz (durée de l'installation approximativement 30 secondes) et hop ! formidable non ? mais bon ça vaut pas un bon petit script écrit à la main !

:-))
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 542
Salut,

merci aussi


mais un jour je reviendrai avec un petit script, un vrai, confectionné avec mes p'tits doigts
ben, oui, il t'as fallu quelques heures pour trouver la commande, la solution était la après quelques minutes ;-))))))
mais dans ce rythme on va arrêter de reflechir, et va se contenter de trouver des commandes

c'est null ça et c'est moi qui
------------------------------------------------------------------------------------>









------------------------------------------------------>sors (en plus je viens d'entrer ;-DDDDDDDDDDDDDDDDDd
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 862
Ben ressors de suite alors ;-DDD
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 542
je l'installe à partir du tar.gz

alors c'est le moment de passer à Debian ;-DDDDDDDDDDDDDDDDDDD
lami20j@debian:~$ aptitude search num-utils
p   num-utils                  - programs for dealing with numbers fr
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
469
alors ce le moment de passer à Debian
j'hésite ..... -DDDDD

Pour l'instant c'est Mandriva qui travaille ! la Debian , elle est là juste à côté, elle se repose. :-)

Bien tu peux rentrer lami20j. On voudrait pas que tu t'engourdisses les doigts ! -DDDDDDD

:-))

à titre indicatif je rajoute des archives récentes en date de 2007 sur num-utils
http://mailman.suso.org/pipermail/num-utils/2007-October/thread.html
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 542
j'hésite ..... -DDDDD

alors change la signature ;-DDDDDDDDDDDDDDD
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
469
alors change la signature

jamais ! :-)

:-))
Merci bcq pr votre aide je vais essayer :) le devoir est reporté à lundi :p