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








Répondre à