Bonjour;

Alors tout est dans le sujet...
Est - il possible de passer en paramètre d'un script awk, 2 paramètres... et de surtout les ré-utiliser ensuite ?

Voici mon script AWK qui plante... avec l'erreur... :
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
21
22
 
# CheckPatternString(col:num, pattern:reg_exp)
#
CheckPatternString()
{
        awk -v col=$2 -v pattern=$3 -F ';' '
                NF>0 {
                if ( match($col,$pattern) )
                        {
                        print "**** ERREUR dans un champ ! ligne:"NR"**** Valeur en cause :"$col"****";
                        print "****"$0"****";
                        exit 1;
                        }
                }' $1
}
#
 
[....] L'erreur obtenue :
 
awk: Field /^Mme$|^M$|^Mlle$|^$/ is not correct.
 The input line number is 1. The file is RGEUsersVerole.csv_WBLANKS.
 The source line number is 3.
Merci de votre aide....

PS/ Je sais... ce awk est "debile" mais c'est en fait une sous fonction de mon programme Shell Bash SH
En voici l'appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
#
# On verifie le champ 1 (Civilité)
#
echo "-- DEBUT -- CheckPatternString Civilite"
RegExpCivilite="^Mme$|^M$|^Mlle$|^$";
CheckPatternString $FIC_ENTREE_WBLANKS 1 $RegExpCivilite
if [ $? != 0 ]; then
        {
                CatchError
                Error "001" $FIC_ENTREE $FIC_ENTREE_WBLANKS
        }
fi
echo "-- FIN -- CheckPatternString Civilite"