Erreur SED scritp Bash
Résolu/Fermé
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
-
17 mars 2011 à 08:26
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 22 mars 2011 à 11:57
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 22 mars 2011 à 11:57
A voir également:
- Erreur SED scritp Bash
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 3005 france tv - Forum TV & Vidéo
- Erreur 5000 france tv - Forum iPhone
10 réponses
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 622
17 mars 2011 à 12:17
17 mars 2011 à 12:17
hello
est-ce qu'une des variables contient un / ?
si oui, utiliser un autre séparateur
est-ce qu'une des variables contient un / ?
si oui, utiliser un autre séparateur
sed -e " s+\bODAE\b+${ODAE}+ ...
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
17 mars 2011 à 14:24
17 mars 2011 à 14:24
Merci dubcek,
mais je n'ai pas de / dans mes variables et dans le cas ou j'ai testé ce que tu m'indiques mais j'ai toujours la même erreur.
mais je n'ai pas de / dans mes variables et dans le cas ou j'ai testé ce que tu m'indiques mais j'ai toujours la même erreur.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
17 mars 2011 à 19:00
17 mars 2011 à 19:00
Salut,
A défaut, affiches-nous le contenu de chaque variable, il doit y avoir un caractère qui fiche le bronx quelque part ;-\
A défaut, affiches-nous le contenu de chaque variable, il doit y avoir un caractère qui fiche le bronx quelque part ;-\
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
Modifié par pcsystemd le 18/03/2011 à 07:06
Modifié par pcsystemd le 18/03/2011 à 07:06
Bonjour,
voici les variables :
Je me suis aperçu en faites après qu'il y avait un / comme dubcek me l'a signalé donc j'ai remplacé comme il me l'indiques le séparateur du sed par + comme cela :
mais j'ai toujours l'erreur suivante :
Merci
L'accès au savoir est la première liberté que chaque homme devrait avoir.
voici les variables :
UTIT="cat ${TMPDIR}/ut_tr21_${DATE}.lst" TOTTR="cat ${TMPDIR}/to_stats_${DATE}.lst" DATE='date '+%d-%m-%Y'' ODAE='date -d '-2 day' '+%d-%m-%Y''
Je me suis aperçu en faites après qu'il y avait un / comme dubcek me l'a signalé donc j'ai remplacé comme il me l'indiques le séparateur du sed par + comme cela :
sed -e " s+\bODAE\b+${ODAE}/ s+\bDATE\b+${DATE}/ s+\bUTIT\b+${UTIT}/ s+\bTOTTR\b+${TOTTR}/ " template.tpl | mail -s "Message du ${OLDATE} au ${DATE}" toto@mail.com
mais j'ai toujours l'erreur suivante :
sed: -e expression #1, char 25: unterminated 's' command
Merci
L'accès au savoir est la première liberté que chaque homme devrait avoir.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
18 mars 2011 à 07:35
18 mars 2011 à 07:35
Re-
Je me suis aperçu en faites après qu'il y avait un / comme dubcek me l'a signalé donc j'ai remplacé comme il me l'indiques le séparateur du sed par + comme cela :
Il ne faut pas oublier de remplacer TOUS les caractères, y compris le dernier ;-((
Je me suis aperçu en faites après qu'il y avait un / comme dubcek me l'a signalé donc j'ai remplacé comme il me l'indiques le séparateur du sed par + comme cela :
Il ne faut pas oublier de remplacer TOUS les caractères, y compris le dernier ;-((
sed -e " s+\bODAE\b+${ODAE}+ s+\bDATE\b+${DATE}+ s+\bUTIT\b+${UTIT}+ s+\bTOTTR\b+${TOTTR}+ " template.tpl | mail -s "Message du ${OLDATE} au ${DATE}" toto@mail.com
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
18 mars 2011 à 09:04
18 mars 2011 à 09:04
En effet merci de le signaler mais malheureusement l'erreur persiste.
sed: -e expression #1, char 88: unterminated 's' command
sed: -e expression #1, char 88: unterminated 's' command
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
18 mars 2011 à 09:15
18 mars 2011 à 09:15
Ok, mais déjà la source du problème change à chaque correction :
sed: -e expression #1, char 69: unknown option to 's'
sed: -e expression #1, char 25: unterminated 's' command
sed: -e expression #1, char 88: unterminated 's' command
Peux-tu afficher le contenu de chaque variable avec un echo s'il te plaît ?
sed: -e expression #1, char 69: unknown option to 's'
sed: -e expression #1, char 25: unterminated 's' command
sed: -e expression #1, char 88: unterminated 's' command
Peux-tu afficher le contenu de chaque variable avec un echo s'il te plaît ?
UTIT="cat ${TMPDIR}/ut_tr21_${DATE}.lst" echo "${UTIT}" TOTTR="cat ${TMPDIR}/to_stats_${DATE}.lst" echo "${TOTTR}" DATE='date '+%d-%m-%Y'' echo "${DATE}" ODAE='date -d '-2 day' '+%d-%m-%Y'' echo "${ODAE}"
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
18 mars 2011 à 10:02
18 mars 2011 à 10:02
Voila le contenu des variables :
UTIT="cat ${TMPDIR}/ut_tr21_${DATE}.lst"
echo "${UTIT}"
cat /tmp/user/ut_tr21_18-03-2011.lst
TOTTR="cat ${TMPDIR}/to_stats_${DATE}.lst"
echo "${TOTTR}"
cat /tmp/user/to_stats_18-03-2011.lst
DATE='date '+%d-%m-%Y''
echo "${DATE}"
18-03-2011
ODAE='date -d '-2 day' '+%d-%m-%Y''
echo "${ODAE}"
16-03-2011
si au lieu de mettre des doubles côtes je mets :
UTIT='cat ${TMPDIR}/ut_tr21_${DATE}.lst'
echo "${UTIT}"
cela affiche le contenu de mon fichier ut_tr21_18-03-2011.lst
Merci
UTIT="cat ${TMPDIR}/ut_tr21_${DATE}.lst"
echo "${UTIT}"
cat /tmp/user/ut_tr21_18-03-2011.lst
TOTTR="cat ${TMPDIR}/to_stats_${DATE}.lst"
echo "${TOTTR}"
cat /tmp/user/to_stats_18-03-2011.lst
DATE='date '+%d-%m-%Y''
echo "${DATE}"
18-03-2011
ODAE='date -d '-2 day' '+%d-%m-%Y''
echo "${ODAE}"
16-03-2011
si au lieu de mettre des doubles côtes je mets :
UTIT='cat ${TMPDIR}/ut_tr21_${DATE}.lst'
echo "${UTIT}"
cela affiche le contenu de mon fichier ut_tr21_18-03-2011.lst
Merci
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
18 mars 2011 à 10:24
18 mars 2011 à 10:24
si au lieu de mettre des doubles côtes je mets :
UTIT='cat ${TMPDIR}/ut_tr21_${DATE}.lst'
echo "${UTIT}"
cela affiche le contenu de mon fichier ut_tr21_18-03-2011.lst
Et ce n'est pas le but recherché ?
Tu veux vraiment que ta variable contienne :
cat ...
et non pas le contenu du fichier ?
Donc remplacer dans ton template "UTIT" par "cat /tmp/user/ut_tr21_18-03-2011.lst" ?
Essaie de substituer chaque ligne interprétée une à une :
UTIT='cat ${TMPDIR}/ut_tr21_${DATE}.lst'
echo "${UTIT}"
cela affiche le contenu de mon fichier ut_tr21_18-03-2011.lst
Et ce n'est pas le but recherché ?
Tu veux vraiment que ta variable contienne :
cat ...
et non pas le contenu du fichier ?
Donc remplacer dans ton template "UTIT" par "cat /tmp/user/ut_tr21_18-03-2011.lst" ?
Essaie de substituer chaque ligne interprétée une à une :
sed 's+\bUTIT\b+cat /tmp/user/ut_tr21_18-03-2011.lst+' template.tpl
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
18 mars 2011 à 11:29
18 mars 2011 à 11:29
sed 's+\bUTIT\b+cat /tmp/user/ut_tr21_18-03-2011.lst+' template.tpl
me renvoi dans mon template.tpl a la place du tag UTIT :
cat /tmp/user/ut_tr21_18-03-2011.ls
et pas le contenu du fichier.
Je n'y comprends plus rien car j'ai fait cela des multiples fois sans aucun souci.
Merci en tout cas pour ton aide.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
18 mars 2011 à 11:40
18 mars 2011 à 11:40
me renvoi dans mon template.tpl a la place du tag UTIT :
cat /tmp/user/ut_tr21_18-03-2011.ls
et pas le contenu du fichier.
Et est-ce bien le but recherché ?
As-tu essayé les autres substitutions en procédant de la même manière ?
cat /tmp/user/ut_tr21_18-03-2011.ls
et pas le contenu du fichier.
Et est-ce bien le but recherché ?
As-tu essayé les autres substitutions en procédant de la même manière ?
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
18 mars 2011 à 16:54
18 mars 2011 à 16:54
non le but rechercher c'est qu'il me renvoi le contenu du fichier. J'ai d'autres scripts avec la même syntaxe et il me renvoi bien le contenu du fichier mais pas dans ce script et c'est cela qui me rends perplexe.
c'est pareil pour les autres sauf pour
s+\bODAE\b+${ODAE}+
s+\bDATE\b+${DATE}+
dont j'ai bien la date.
Merci
c'est pareil pour les autres sauf pour
s+\bODAE\b+${ODAE}+
s+\bDATE\b+${DATE}+
dont j'ai bien la date.
Merci
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
18 mars 2011 à 17:11
18 mars 2011 à 17:11
Essaye comme ça :
UTIT="$(cat ${TMPDIR}/ut_tr21_${DATE}.lst)"
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
21 mars 2011 à 11:16
21 mars 2011 à 11:16
Bonjour,
cela ne change rien. J'ai toujours :
sed: -e expression #1, char 88: unterminated 's' command
J'en perds mon latin.
Merci
cela ne change rien. J'ai toujours :
sed: -e expression #1, char 88: unterminated 's' command
J'en perds mon latin.
Merci
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
21 mars 2011 à 11:22
21 mars 2011 à 11:22
Essayes de décomposer chaque action :
cat ${TMPDIR}/ut_tr21_${DATE}.lst
Renvoie bien le contenu du fichier ?
UTIT="$(cat ${TMPDIR}/ut_tr21_${DATE}.lst)"
echo $UTIT
Renvoie bien le contenu de la variable (et du fichier donc) ?
etc.
cat ${TMPDIR}/ut_tr21_${DATE}.lst
Renvoie bien le contenu du fichier ?
UTIT="$(cat ${TMPDIR}/ut_tr21_${DATE}.lst)"
echo $UTIT
Renvoie bien le contenu de la variable (et du fichier donc) ?
etc.
pcsystemd
Messages postés
702
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
6 novembre 2024
23
22 mars 2011 à 11:57
22 mars 2011 à 11:57
Merci pour ton aide zipe31. Finalement comme cela devenait urgent j'ai fait autrement en me passant du sed et en mettant mon template directement dans mon sh et cela fonctionne parfaitement.
Merci en tout cas
Merci en tout cas