[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [hs] awk + boucle dans script shell



Steve a écrit :

Bonjour,

j'essaie d'écrire un script shell contenant du awk, et il y a un truc
que je ne comprends pas.

voici:

#!/bin/sh

tempfile="unfichier.txt"
# fichier contenant une ligne avec 14 champs

limite=15

for ((i=1 ; i < limite ; i++))
do
	champ=`awk '{print $i}' $tempfile`
	echo "Champ $i est $champ"
done

et quand j'exécute ce script, il me sort la ligne entière pour chaque
$i,  [...]

Normal. '(print $i)' est ton script awk. Dans ce script, i est une variable interne, qui n'a pas été initialisée et qui vaut donc 0.
Il t'écrit $0, c'est-à-dire toute la ligne, à chaque appel.
Il faudrait mettre ta boucle dans le script awk.
Si tu tiens à la façon dont tu as fait, essaye en remplaçant $i par $ENVIRON["i"] (voir man awk pour les détails de syntaxe, ça fait longtemps que je n'en ai pas fait).

merci et bon week-end






Reply to: