[shell] affectation de variable
Résolu
tlep
Messages postés
597
Statut
Membre
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'ai un fichier comme suit :
A,toto
B,tata
Z,titi
Je voudrais le parser de manière à affecter des variables SHELL comme suit:
A="toto"
B="tata"
Z="titi"
Le souci, c'est qu'en parsant le fichier, je peux récupérer des valeurs genre "A", "toto", etc... Or moi je voudrais affecter à une variable "A" la valeur "toto", "B" la valeur "tata", etc...
J'ignore si c'est possible ?
Merci :-)
j'ai un fichier comme suit :
A,toto
B,tata
Z,titi
Je voudrais le parser de manière à affecter des variables SHELL comme suit:
A="toto"
B="tata"
Z="titi"
Le souci, c'est qu'en parsant le fichier, je peux récupérer des valeurs genre "A", "toto", etc... Or moi je voudrais affecter à une variable "A" la valeur "toto", "B" la valeur "tata", etc...
J'ignore si c'est possible ?
Merci :-)
Configuration: Windows XP Firefox 3.0.3
5 réponses
-
Si tes données sont bien ligne à ligne
un simple remplacement de ta virgule par = devrait suffire.
sed 's/,/=/g' ton_fichier -
Oui, mais çà ne va pas affecter à la variable shell "A" la valeur "toto", çà va afficher le résultat :-()
-
En fait j'ai trouvé:
while read ligne;do
eval $(echo $ligne|cut -d"," -f1)=$(echo $ligne|cut -d"," -f2)
done < mon_fichier -
désolé je pensais que tu voulais les changer dans ton script.
puis réexecuter le script modifier et là...
tes variables seraient alimentées, un peu bourrin comme solution :p -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut,
[tmpfs]$ cat fich A,toto B,tata Z,titi [tmpfs]$ cat foo.sh #! /bin/bash eval $(sed 's/,/=\"/;s/$/\"/' fich) echo "A = $A" echo "B = $B" echo "Z = $Z" [tmpfs]$ ./foo.sh A = toto B = tata Z = titi [tmpfs]$
;-))