Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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