Aide Script Très Simple

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
Configuration: Linux
Firefox 2.0.0.3

11 réponses

  1. Modérateur
    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
    

    1. 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
    2. Modérateur
      @SblewSalut,

      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 ;-)
  2. Modérateur
    Salut,

    ou
    [tmpfs]$ cat B
    1 2 3 4 3 2 1
    [tmpfs]$ A=$(< B)
    [tmpfs]$ echo $((${A// /+}))
    16
    [tmpfs]$
    ;-))
    1. 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 ---------------------------------> :-)

      :-))
      1. Modérateur
        Fait froid ? Oui ? Ben tant mieux ;-DDDDDD
    2. 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 !

      :-))
      1. Modérateur
        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
        1. Modérateur
          Ben ressors de suite alors ;-DDD
      2. Modérateur
        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
        
        1. 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
          1. Modérateur
            j'hésite ..... -DDDDD

            alors change la signature ;-DDDDDDDDDDDDDDD
            1. Merci bcq pr votre aide je vais essayer :) le devoir est reporté à lundi :p