[shell] affectation de variable

Résolu
tlep Messages postés 597 Statut Membre -  
jipicy Messages postés 41342 Statut Modérateur -
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 :-)
A voir également:

5 réponses

alx13 Messages postés 9 Statut Membre
 
Si tes données sont bien ligne à ligne
un simple remplacement de ta virgule par = devrait suffire.

sed 's/,/=/g' ton_fichier
0
tlep Messages postés 597 Statut Membre 118
 
Oui, mais çà ne va pas affecter à la variable shell "A" la valeur "toto", çà va afficher le résultat :-()
0
tlep Messages postés 597 Statut Membre 118
 
En fait j'ai trouvé:

while read ligne;do
eval $(echo $ligne|cut -d"," -f1)=$(echo $ligne|cut -d"," -f2)
done < mon_fichier
0
alx13 Messages postés 9 Statut Membre
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 41342 Statut Modérateur 4 896
 
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]$
;-))
0