Partage
  • Partager sur Facebook
  • Partager sur Twitter

BASH manipuler une variable

Sujet résolu
    5 septembre 2017 à 16:13:37

    Bonjour,

    Je suis entrain de faire mon premier programme en bash. ça se passe plutôt bien sauf que j'ai bloqué à plusieurs reprises sur des problèmes similaires.

    Par exemple voici la doc de la commande awk:

    awk -options {instructions}  fichier 

    ça fonctionne bien sauf que maintenant je fais utiliser cette commande sur une variable et non un fichier. J'ai donc mis mon nom de variable à la place de mon nom de fichier mais ça me sort une erreur comme quoi il trouve pas le fichier... (il cherche un fichier avec le nom de ma variable...).

    Pour l'instant je contourne le problème en enregistrant mes variables dans des fichiers mais c'est un peu bête :waw:

    Quelqu'un sait comment faire ? :)

    Merci :ange:

    • Partager sur Facebook
    • Partager sur Twitter
      5 septembre 2017 à 17:02:23

      Salut :)

      Si tu as une variable FILE admettons, alors il suffit de passer $FILE (ou ${FILE} , cette forme est utile si tu veux concaténer le contenu de la variable avec autre chose) lorsque tu fais appel a awk.

      FILE='/home/myuser/my_file_foo.txt'
      
      awk -options {instructions} $FILE



      • Partager sur Facebook
      • Partager sur Twitter
        5 septembre 2017 à 17:05:51

        Oui mais là il va ouvrir le fichier.

        Moi je veux faire par exemple:

        variable="31 42 56 87 45 12"
        awk -option {instructions} $variable

        J'ai mis awk pour exemple mais avec "cut" par exemple, j'ai le même problème

        -
        Edité par fafine 5 septembre 2017 à 17:06:23

        • Partager sur Facebook
        • Partager sur Twitter
          5 septembre 2017 à 18:27:56

          salut,

          variable="31 42 56 87 45 12"
          awk --assign var="$variable" 'BEGIN{traitement_sur var}'


          mais, c'est pas du bash.
          est-ce indispensable ? bash ne peut-il faire ce que tu veux faire faire à awk, ou à cut ?

          -
          Edité par dantonq 5 septembre 2017 à 21:12:14

          • Partager sur Facebook
          • Partager sur Twitter

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

            5 septembre 2017 à 19:50:20

            Je pense que tu dois pouvoir faire comme ca alors :

            variable="31 42 56 84 45 12"
            echo $variable | awk -option {instructions}

            Ou encore (qui est equivalent a la ligne du dessus):

            variable="31 42 56 84 45 12"
            awk -option {instructions} <<< "$variable"



            • Partager sur Facebook
            • Partager sur Twitter
              5 septembre 2017 à 23:12:14

              je n'avais pas vu qu'il n'était question que d'un cut.

              donc, selon le cas de figure :

              var='12 45 78'
              ar=( $var )
              echo ${ar[1]}
              45

              ou

              $ var="12,45,78"
              $ IFS=',' read -a ar <<<"$var"
              $ echo ${ar[0]}
              12




              • Partager sur Facebook
              • Partager sur Twitter

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

                9 septembre 2017 à 19:15:43

                OK merci beaucoup à tous pour vos réponses. Je vais tester tous ça.
                • Partager sur Facebook
                • Partager sur Twitter

                BASH manipuler une variable

                × 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