AWK -Passage de deux arguments (un numéro de champ, une expression régulière) ?
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:
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....:oops:
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:
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" |