#1 Le 04/08/2008, à 15:06
- vitcz2
Script Bash : parse a partir d'un fichier text
Bonjour a tous,
Lancé depuis peu dans l'écriture intenseive de scripts, je bloc plus que de raison sur un problème d'extraction de variable a partir d'un fichier texte :
J'ai dans un fichier texte : deux valeurs séparée par une virgule (on pourrais mettre un autre séparateur) :
Mon script doit : pour chaque ligne, extraire ces deux variables pour nomer a chaque ligne : une table en renseignant le le type de donnée :
Mon fichier texte :
nom_table1, type_donnée
nome_table2, type donnée ....
ma syntaxe :
egrep -v '(^#|[\s]*\n)' maliste.txt | awk -F ',' '{print $1 $2}' | while read line; do if [ -f "$mon_repertoir/$line$1" ];
then do sde2shp -o init -l $nom_table -f $line -t $dossier_shapefile/$line$2 -a all -u $cg78_user_sde -p $cg78_password_sde ; fi; done
merci pour vos lumières, et bonn journée a tous.
#2 Le 04/08/2008, à 16:51
- pacome
Re : Script Bash : parse a partir d'un fichier text
Salut,
Je crois comprendre qu'avec la syntaxe $line$1 tu espères accéder à la permière valeur stockée dans la variable/tableau(?) line...
Plusieurs choses:
- la syntaxe pour accéder à un élément de tableau est (d'après man bash): ${name[subscript]}
- la numérotation des éléments commence à 0, donc dans ton cas: ${line[0]} et ${line[1]}
- enfin pour que read stocke les 2 valeurs récupérées de awk dans un tableau, il faut lui demander explicitement avec l'option -a (toujours d'après man bash): read -a line; ceci dit, si tu n'as que 2 valeurs à récupérer, tu peux aussi bien les stocker dans 2 variables distinctes: read var1 var2.
À+
Hors ligne