Bash sed débutant

Résolu
xprophetex Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
xprophetex Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
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. jisisv Messages postés 3678 Statut Modérateur 936
     
    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
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Ou encore :

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

    ;-))
    0
  3. xprophetex Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   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
  4. xprophetex Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Les méthodes qui t'ont été données ne te conviennent pas ?
      0
    2. xprophetex Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   1
       
      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. xprophetex Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   1
       
      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. xprophetex Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   1
       
      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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      $ 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