Voila j'ai une portion de script avec utilisation de SED :

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
sed '
s/DATE/'"${DATE}"'/
s/NBPUSH/'"${NBPUSH}"'/
s/NBPUSHOLD/'"${NBPUSHOLD}"'/
s/NBNEWSLETTER/'"${NBNEWSLETTER}"'/
s/NBNEWSLETTEROLD/'"${NBNEWSLETTEROLD}"'/
s/NBCDC/'"${NBCDC}"'/
s/NBCDCOLD/'"${NBCDCOLD}"'/
s/VENTE/'"${VENTE}"'/
s/LOC/'"${LOC}"'/
s/VENTEOLD/'"${VENTEOLD}"'/
s/LOCOLD/'"${LOCOLD}"'/
s/CONFI/'"${CONFI}"'/
s/SIMPL/'"${SIMPL}"'/
s/CONFIOLD/'"${CONFIOLD}"'/
s/SIMPLOLD/'"${SIMPLOLD}"'/
s/DATEOLD/'"${DATEOLD}"'/
' stats_votes.tpl > test.txt
quand je l'execute hors de mon script dans une console j'ai bien le contenu de mon fichier TEMPLATE stats.tpl qui est renvoyé vers mon fichier test.txt mais aucune des variables n'est remplacé c'est comme si elles n'était pas interprétées alors qu'elles sont bien déclaré puisque si je fait un echo $VARIABLE dans un shell c'est bon

exemples :

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
$ DATE=`date '+%d-%m-%Y'`
DATE=`date '+%d-%m-%Y'`
date '+%d-%m-%Y'
++ date +%d-%m-%Y
+ DATE=14-05-2008
 
$ echo $DATE
echo $DATE
+ echo 14-05-2008
14-05-2008
 
 
$ NBPUSH="$(sed -n '1p' ${TMPDIR}/stat_${DATE}.lst)"
NBPUSH="$(sed -n '1p' ${TMPDIR}/stat_${DATE}.lst)"
sed -n '1p' ${TMPDIR}/stat_${DATE}.lst
++ sed -n 1p /tmp/stat_14-05-2008.lst
+ NBPUSH=123
 
$ echo $NBPUSH
+ echo 123
123
et si j'execute mon script Shell j'ai l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
sed: -e expression #1, char 295: Extra characters after command
Null message body; hope that's ok
Pour info je mets le contenu de mon TEMPLATE stats_votes.tpl

Voici les stats au DATE

Push :
il y a PUSH inscriptions au push (contre NBPUSHOLD en DATEOLD)

Newsletter :
il y a NEWSLETTER inscriptions à la newsletter (contre NEWSLETTEROLD en DATEOLD)

Coups :
il y a NBCDC coups programmés (contre NBCDCOLD en DATEOLD)

Nombre de votes simple et double au DATE :
nombre de votes simples : CONFI (contre CONFIOLD en DATEOLD)
nombre de votes doubles : SIMPL (contre SIMPLOLD en DATEOLD)

Nombre de votants au DATE :
nombre de votants simples : VENTE (contre VENTEOLD en DATEOLD)
nombre de votant doubles : LOC (contre LOCOLD en DATEOLD)

Bonne journée.
Avez vous une idée du problème?

Merci