Bash sed débutant

Résolu
Bonjour,
J'essai de faire un petit scipt en bash et je pense avoir besoin de la commande sed.
Cela dit je la trouve un peu complexe pour mon niveau si peu avancé.

J'ai un fichier var.txt qui contient ceci

Nom:Toto
Prénom:Anon
Age:99


Et je voudrais extraire
Toto
Anon
99

Pouvez vous m'aider ?

4 réponses

  1. Modérateur
    Essayes ceci:
    cut -d ':' -f2 var.txt 
    ou encore
    while read line ; do echo ${line##*:}; done < var.txt 
    

    man cut
    Gates gave ^H sold you the windows.
    GNU gave us the whole house.(Alexandrin)
    0
    1. Contributeur
      Salut,

      Ou encore :

      $ sed -n 's/.*://p' plop
      Toto
      Anon
      99
      
      $ awk -F':' '{ print $2 }' plop
      Toto
      Anon
      99

      ;-))
      0
      1. merci bien.
        il ne me reste plus qu'à décortiquer vos lignes avec les tutos sur le bash pour comprendre quelque chose ;-)
        l'essentiel étant que ça fonctionne.
        0
        1. Pour être plus précis en fait je crées le fichier var.txt comme ceci

          #affectation d'une valeur à mes variables
          Toto = $1
          Anon = $2
          99 = $3
          
          #ecriture de ces variables dans var.txt
          echo "Nom   : $1" >> var.txt
          echo "Prénom  : $2" >> var.txt
          echo "Age  : $3" >> var.txt
          


          Je voudrais maintenant récuperer ces variables mais sans "Nom :" , "Prénom :" , "Age :" ?
          0
          1. Contributeur
            Les méthodes qui t'ont été données ne te conviennent pas ?
            0
          2. Je bosse dessus mais ce n'est pas évident :
            $ sed -n 's/.*://p' plop
            Toto
            Anon
            99
            

            Mon script ne connait pas ces valeurs Toto Anon 99 au moment ou je le lis...

            cut -d ':' -f2 var.txt 
            ou encore
            while read line ; do echo ${line##*:}; done < var.txt 
            

            Je n'arrive pas à isoler chaque ligne pour l'affecter à une variables.
            0
          3. en fait je voudrais récuperer $1 $2 $3 en sortie comme je les avais avant de les écrire dans var.txt (sous forme de tableau en ajoutant Nom, Prénom Age devant les valeurs enrégistrées)
            0
          4. avant j'utilisais sed comme ceci pour récupérer ma variable ligne à ligne
            $1=$(sed -n "1p" var)
            $2=$(sed -n "2p" var)
            $3=$(sed -n "3p" var)
            

            Mais c'est limité car je dois maintenant éliminé "Nom :" "Prénom: " et "Age :" de mes lignes
            0
          5. Contributeur
            $ cat plop
            Nom:Toto
            Prénom:Anon
            Age:99
            
            $ sed -n 's/.*://p' plop
            Toto
            Anon
            99
            
            $ awk -F':' '{ print $2 }' plop
            Toto
            Anon
            99
            
            $ cut -d ':' -f2 plop
            Toto
            Anon
            99
            
            $ while read line ; do echo ${line##*:}; done < plop
            Toto
            Anon
            99
            
            $
            0