Ajout d'une variable dans awk
Bonjour,
j'essaie de transformer un script contenant un awk afin d'y ajouter une variable. Je n'arrive à avoir au mieux que des erreurs de syntaxes ou le script qui ne s'arrête pas (sans message d'erreur).
Script initial :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #!/bin/sh
awk '
BEGIN {\
}\
{\
#DEBUT CORPS\
if ((substr($0,293,1) == "O") && ((substr($2,10,1) != "F") && (substr($2,9,2) != "FI")))\
{\
upr=substr($2,1,10);\
commande=sprintf("grep -q \"dep : %s\" log/DESC_UPR.txt",upr);\
if (system(commande) != 0)\
{\
printf ("massage\n", upr)\
}\
}\
\
#FIN CORPS\
}\
END {\
\
}\
' conf/upr.bin | while read line ; do
check_defect $line
done |
J'essaie de remplacer les fichiers texte par une extraction d'un fichier xml (fichier nommé $ficTmp) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #!/bin/sh
ficTmp=$(basename $0).tmp
$CMD_XSLTPROC --encoding iso8859-15 $LOC_XSL_SHEET/check_DEP3.xsl conf/upr.xml > $ficTmp
awk '
BEGIN {\
}\
{\
#DEBUT CORPS\
if ((substr($0,293,1) == "O") && ((substr($2,10,1) != "F") && (substr($2,9,2) != "FI")))\
{\
upr=substr($2,1,10);\
commande=sprintf("grep -q \"%s\" $ficTemp",upr);\
if (system(commande) != 0)\
{\
printf ("message\n", upr)\
}\
}\
\
#FIN CORPS\
}\
END {\
\
}\
' $ficTmp | while read line ; do
check_defect $line
done |