Bash sed débutant

Résolu/Fermé
xprophetex Messages postés 74 Date d'inscription samedi 26 mars 2011 Statut Membre Dernière intervention 3 avril 2011 - 26 mars 2011 à 06:51
xprophetex Messages postés 74 Date d'inscription samedi 26 mars 2011 Statut Membre Dernière intervention 3 avril 2011 - 26 mars 2011 à 18:24
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 ?
A voir également:

4 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 26/03/2011 à 07:29
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 412
26 mars 2011 à 08:53
Salut,

Ou encore :

$ sed -n 's/.*://p' plop
Toto
Anon
99

$ awk -F':' '{ print $2 }' plop
Toto
Anon
99

;-))
0
xprophetex Messages postés 74 Date d'inscription samedi 26 mars 2011 Statut Membre Dernière intervention 3 avril 2011 1
26 mars 2011 à 15:50
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
xprophetex Messages postés 74 Date d'inscription samedi 26 mars 2011 Statut Membre Dernière intervention 3 avril 2011 1
26 mars 2011 à 16:48
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 412
26 mars 2011 à 17:21
Les méthodes qui t'ont été données ne te conviennent pas ?
0
xprophetex Messages postés 74 Date d'inscription samedi 26 mars 2011 Statut Membre Dernière intervention 3 avril 2011 1
26 mars 2011 à 17:38
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
xprophetex Messages postés 74 Date d'inscription samedi 26 mars 2011 Statut Membre Dernière intervention 3 avril 2011 1
26 mars 2011 à 17:40
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
xprophetex Messages postés 74 Date d'inscription samedi 26 mars 2011 Statut Membre Dernière intervention 3 avril 2011 1
26 mars 2011 à 17:53
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 412
26 mars 2011 à 18:10
$ 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