Bonjour,

Dans un script, j'utilise gawk selon ce schéma :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
gawk -N -F ';' -v var1=1.0  '
{
    if CONDITION 
	  {
		printf("%12s", $1) 
		printf(";")
		printf("%8s", $3)
		printf(";")
 
		#etc . . .
 
		printf ("\n")
	}
} ' ftmp8a1.csv > ftmp8a2.csv
Ce schéma marche bien.

Quand la condition "CONDITION" n'est pas vérifiée, je souhaiterais créer, en plus, un fichier d'anomalie en .log reprenant certains champs.
Je n'y arrive pas !
J'ai complété le code précédent, mais je n'arrive pas à obtenir un code correct.
Code modifié avec "else" incorrect :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
echo "TitreCol1;TitreCol2;TitreCol3;TitreCol4;TitreCol5" > f8a.csv
gawk -N -F ';' -v var1=1.0  '
{
    if CONDITION 
	  {
		printf("%12s", $1) 
		printf(";")
		printf("%8s", $3)
		printf(";")
 
		#etc . . .
 
		printf ("\n")
		}
    else
        {
             echo "$10;$2;$5;$9;var1" >> f8a.log
	}
 
} ' ftmp8a1.csv > ftmp8a2.csv
La redirection dans le "else" ne fonctionne pas.
Peut-on faire autrement ? ou Qu'est-ce qui cloche ?