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 : 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
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 : 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
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