En ce qui concerne le 'foreach' je ne crois pas que cet ordre existe en 'bash' (j'utilise 'ksh' pour ma part), il me semble que c'est du 'csh'.
La commande 'wc -l fichier' retourne le nombre de lignes et le nom du fichier. Su tu fais une boucle du type :
for lindex in $(wc -l message.wri);do |
lindex va prendre successivement les valeurs 'nombre de lignes' et 'nom du fichier'. Je ne pensa pas que ce soit ce que tu veux faire.
Pour lire le fichier dans une boucle, il faut faire :
while read line
do
echo "Ligne lue: $line"
done < message.wri |
En ce qui concerne les accolades, tu mélanges 'awk' et 'bash'.
Dans ton cas tu peux tout faire avec un script 'awk'.
awk '
{
if ($16 == "DF" ) print substr($9,5),substr($19,5)
else
print substr($9,5),substr($20,5)
} ' message.wri > log2 |
---------------
Jean Pierre.