#1 Le 22/01/2006, à 02:04
- ZeBob
[RESOLU][bash]parser des données séparer par une virgule
Bonjour,
Je souhaite extraire des données d'une variable séparées par un point-virgule afin de les mettre dans une variable array. J'ai essayer des trucs avec awk mais je bloque.
reponse=$(zenity --title="Stream" --width=640 --height=480 --list --text="Choississez les fichiers" --checklist --separator=";" --column=" " --column="Fichiers" "${liste[@]:1}")
Il faudait que je convertisse cette liste de fichiers sélectionnés en tableau afin de les manipuler avec une boucle for.
Merci de m'aiguiller.
Dernière modification par ZeBob (Le 22/01/2006, à 12:23)
Hors ligne
#2 Le 22/01/2006, à 02:49
- ZeBob
Re : [RESOLU][bash]parser des données séparer par une virgule
J'ai essayer çà mais ça ne me donne rien
echo $reponse | gawk '{split($O,liste_fichiers,";")}'
echo ${liste_fichiers[@]}
Hors ligne
#3 Le 22/01/2006, à 11:03
- mrf
Re : [RESOLU][bash]parser des données séparer par une virgule
tableau=`echo $reponse|awk -F, '{for(i=1;$i;i++) print $i}'`
Chaque ligne de tableau (c'est pas un vrai tableau, ça reste un texte...) contient l'un des fichiers
#4 Le 22/01/2006, à 11:25
- ZeBob
Re : [RESOLU][bash]parser des données séparer par une virgule
C'est le problème il me faut un vrai tableau. Mais merci beaucoup.
Hors ligne
#5 Le 22/01/2006, à 12:16
- ZeBob
Re : [RESOLU][bash]parser des données séparer par une virgule
Voici la solution quej'ai trouvé:
lister()
{
for arg
do liste_fichiers=("${liste_fichiers[@]}" "$arg")
done
}
reponse=$(zenity --title="blabla" --width=640 --height=480 --list --text="Choississez les fichiers" --checklist --separator=";" --column=" " --column="Fichiers" "${liste[@]:1}")
IFS=";"
lister $reponse
echo "${liste_fichiers[@]}"
Dernière modification par ZeBob (Le 22/01/2006, à 12:16)
Hors ligne