Partage
  • Partager sur Facebook
  • Partager sur Twitter

exercice compter le nombre de mot.

Sujet résolu
    14 décembre 2014 à 11:05:46

    Bonjour, 

    je commence l'exercice pour compter le nombre de mots contenant A,B,C.........de dico.txt

    ma question est:

    est il possible d'envoyer la valeur que retourne une commande dans une variable

    par exemple: 

    A=wc -l lettre_a

    Bon suite a l'essai de la commande ce n'est pas la bonne solution. Suite a un "egrep" qui m'as isolé les mots contenant un A et rediriger le résultat dans un fichier "lettre_a"

    Vous voyez mon idée, Je voudrais donner a la variable "A", le résultat de "wc" qui m'as compter les lignes de "lettre_a".

    Merci pour votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      14 décembre 2014 à 11:30:06

      C'est bon j'ai trouvé il fallait mettre des back quotes

      A=`wc -l lettre_a`



      • Partager sur Facebook
      • Partager sur Twitter
        14 décembre 2014 à 11:51:20

        En fait non il n'est pas résolu. je voudrais que wc ne m'affiche que le resultat seul, sans le nom du fichier.

        pour 25663 lettre_a,

        je voudrais juste 25663 (sans le nom du fichiers a coté)

        -
        Edité par frequi1 14 décembre 2014 à 11:52:12

        • Partager sur Facebook
        • Partager sur Twitter
          14 décembre 2014 à 12:06:15

          Avec un awk ?

          A=`wc -l lettre_a | awk -F ' ' '{print $1}'`
          echo $A



          • Partager sur Facebook
          • Partager sur Twitter
            14 décembre 2014 à 12:38:38

            non ca ne donne rien. au lancement du script il me demande 

            ./langstat.sh
            >
            

            sinon voila mon debut de script

            #!/bin/bash
            
            egrep [aA] dico.txt > lettre_a
            
            A=`wc -l lettre_a` (sans ton awk)
            
            echo "il y a" $A "mots contenant la lettre A"

            resultat: 

            il y a 229938 lettre_a mots contenant la lettre A

            Voila je voudrais enlever "lettre_a" de la réponse


            -
            Edité par frequi1 14 décembre 2014 à 12:40:14

            • Partager sur Facebook
            • Partager sur Twitter
              14 décembre 2014 à 12:43:02

              Ma commande fonctionne pour garder uniquement la première colonne de l'output de ton wc (donc le nombre).

              Montre ton script avec le awk ? il est possible qu'il y ait une erreur de syntaxe quelque part mais normalement cela fonctionne.

              • Partager sur Facebook
              • Partager sur Twitter
                14 décembre 2014 à 12:46:23

                #!/bin/bash
                
                egrep [aA] dico.txt > lettre_a
                
                A=`wc -l lettre_a | awk '''{print $1}'`
                
                echo ' il y a" $A "mot contenant la lettre A"


                Comment on fait pour copier coller depuis vim vers l'interface graphique. Je retape tout chaque fois lol

                -
                Edité par frequi1 14 décembre 2014 à 12:48:00

                • Partager sur Facebook
                • Partager sur Twitter
                  14 décembre 2014 à 12:51:01

                  Il faut un espace entre les deux premières quotes et entre les quotes 2 et 3

                  -F indique les délimitateur de colonnes. Dans ton cas c'est un espace.

                  A=`wc -l lettre_a | awk ' ' '{print $1}'`
                                           ^ ^ ajouter un espace ici et la



                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 décembre 2014 à 12:58:38

                    Oups, je réalise que je t'ai pas mis le -F -__-

                    A=`wc -l lettre_a | awk -F ' ' '{print $1}'`


                    My bad :/

                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 décembre 2014 à 12:59:43

                      Ok c'est bon. j'ai regarder le manuel sur awk. mais moi et l'anglais je suis limité.

                      ca marche dans tous les cas ? il faut juste remplacer l'espace entre les quotes par le caractere separarteur c'est ca ? et le print $ c'est la colone a afficher c'est ca ?

                      merci pour tout

                      • Partager sur Facebook
                      • Partager sur Twitter
                        14 décembre 2014 à 13:04:13

                        Absolument.

                        Bonne continuation ;)

                        • Partager sur Facebook
                        • Partager sur Twitter
                          14 juillet 2017 à 0:52:59

                          Bonjour, 

                          Pour celles et ceux qui tomberai sur ce sujet voila une autre manière de le faire.

                          #!bin/bash
                          dico=$1
                          A=`egrep [A] $dico | wc -l`
                          echo "$A - A"

                          pour compléter l'exercice il suffit de mettre le tout dans une boucle.

                          • Partager sur Facebook
                          • Partager sur Twitter

                          exercice compter le nombre de mot.

                          × 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