Partage
  • Partager sur Facebook
  • Partager sur Twitter

bash addition depuis fichier texte

    17 septembre 2019 à 23:47:26

    Bonjour,

    J'ai un fichier texte "toto.txt" avec une liste de chiffres (1 chiffre par ligne), je souhaite créer un script bash pour faire l'addition de tous les chiffres pour les placer dans une variable "addition" et créer un nouveau fichier texte "total.txt"

    Je n'ai rien trouvé de concluant sur le net c'est pourquoi je m'adresse ici.

    Merci

    • Partager sur Facebook
    • Partager sur Twitter

    01000110011011000110111101110010011001010110111001110100

      18 septembre 2019 à 0:36:28

      salut,

      tu sais lire un fichier, en shell, ligne par ligne ?

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        18 septembre 2019 à 22:24:52

        non
        • Partager sur Facebook
        • Partager sur Twitter

        01000110011011000110111101110010011001010110111001110100

          19 septembre 2019 à 0:40:51

          tant pis.
          • Partager sur Facebook
          • Partager sur Twitter

          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

            19 septembre 2019 à 11:51:09

            ???

            tu peux pas en dire plus?

            • Partager sur Facebook
            • Partager sur Twitter

            01000110011011000110111101110010011001010110111001110100

              19 septembre 2019 à 14:41:00

              tu n'es pas dispensé de participer à la résolution de ton problème, et de faire quelques recherches.
              • Partager sur Facebook
              • Partager sur Twitter

              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                19 septembre 2019 à 23:57:11

                Ok laisse tomber, mais ne propose pas ton aide si c'est juste pour te la jouer... ;-)
                • Partager sur Facebook
                • Partager sur Twitter

                01000110011011000110111101110010011001010110111001110100

                  20 septembre 2019 à 0:09:20

                  mon aide / ton boulot : tu vois la différence ?

                  la recherche d'informations fait aussi partie du travail; si tu ne veux pas le faire, pourquoi en ferais-je davantage ?
                  la lecture d'un fichier en shell est traitée dans tous les tutos, sur tous les forums relatifs au shell.

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                    23 septembre 2019 à 14:14:47

                    • Partager sur Facebook
                    • Partager sur Twitter

                    git is great because Linus did it, mercurial is better because he didn't.

                      25 septembre 2019 à 12:55:15

                      Sympa l'ambiance et la bienveillance..

                      ça t'a pris 5 sec mais ça ne réponds pas à mes attentes, je ne veux pas d'incrémentation , mais un résultat direct pour un gain de temps et peu de ressource machine, moi aussi je suis tombé sur cette page, mais si je viens ici c'est que je n'ai rien trouvé...

                      • Partager sur Facebook
                      • Partager sur Twitter

                      01000110011011000110111101110010011001010110111001110100

                        25 septembre 2019 à 13:10:45

                        Je ne vois pas comment tu peux avoir un résultat direct. Dans tous les cas il faudra lire ligne par ligne et additionner pour ensuite afficher le résultat. Il n'y a aucun appel système « additionne toutes les lignes »

                        Par contre je meurs d'envie de savoir pourquoi cette solution ne te convient pas, je viens d'essayer avec un fichier contenant des entier de 1 à 1000000 et le résultat prend même pas 0.4s.

                        $ time awk '{s+=$1} END {print s}' data.txt
                        500000500000
                        awk '{s+=$1} END {print s}' data.txt  0.42s user 0.01s system 98% cpu 0.428 total
                        

                        Si 0.4 secondes n'est pas assez rapide, tu n'as pas le choix tu devras le faire en C. Le shell est particulièrement connu pour ne pas toujours être super performant.

                        -
                        Edité par markand 25 septembre 2019 à 13:42:33

                        • Partager sur Facebook
                        • Partager sur Twitter

                        git is great because Linus did it, mercurial is better because he didn't.

                          25 septembre 2019 à 14:13:49

                          très rapide awk, mais ce n'est pas le shell; c'est un langage à part entière (comme python, perl...), qui est exécuté dans le shell, comme l'est n'importe quel programme (C ou autre).

                          c'est inscrit dans le man bash, à la section bugs : "il est trop gros, et trop lent".
                          pour quelques centaines de lignes, c'est presque insensible, au-delà... :(

                          sinon, il existe  cette méthode.

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                            25 septembre 2019 à 18:03:39

                            bon au moins il y a de l'humour !!!
                            • Partager sur Facebook
                            • Partager sur Twitter

                            01000110011011000110111101110010011001010110111001110100

                            bash addition depuis fichier texte

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown