Erreur SED dans un script Shell
pcsystemd
Messages postés
734
Statut
Membre
-
pcsystemd Messages postés 734 Statut Membre -
pcsystemd Messages postés 734 Statut Membre -
Bonjour,
tout d'abord la portion de mon script en rapport avec mes erreurs :
et voila les erreur que j'ai a l'execution du script :
Une idée?
Merci
tout d'abord la portion de mon script en rapport avec mes erreurs :
#connexion et exportation la liste
sql.sh -t 10 -H $DHOST -d $DNAME -u $DUSER -p $DPWD -c "${CMDSQL}" -o "${OUTFILESQL}" -l $LOGSQL
#Traitement du fichier ${OUTFILESQL}
sed "/^/{s/.*/INSERT IGNORE INTO matable1 (activ,mail) VALUES (1,'&');\n\INSERT INTO matable2 (id,tid) VALUES(LAST_INSERT_ID(),507);/}" ${EXPORTFILE} > ${IMPORTFILE}
sed -e '1i\BEGIN;' ${IMPORTFILE} > ${INSERTFILE}
#Connexion SFTP sur serveur
sftp nomserveur <<EOF
put ${INSERTFILE}
quit
EOF
#Connexion SSH et insert en base
ssh nomserveur <<EOF
mysql --user="$USER" --password="$PASS" $BASE} < ${INSERTFILE} 2>> ${LOGINSERTSQL} || echo "Echec de connexion a la BD du ${DATE}" > ${LOG}
exit
EOF
et voila les erreur que j'ai a l'execution du script :
+ sed '/^/{s/.*/INSERT IGNORE INTO matable1 (activ,mail) VALUES (1,'\''&'\'');\n\INSERT INTO matable2 (id,tid) VALUES(LAST_INSERT_ID(),507);/}' /monrepertoire/monfichier.sql
sed: -e expression #1, char 162: Unknown option to 's'
+ sed -e '1i\BEGIN;' /monrepertoire/monfichier.sql
sed: -e expression #1, char 4: Extra characters after command
Une idée?
Merci
A voir également:
- Erreur SED dans un script Shell
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Erreur 0x80070643 - Accueil - Windows
- Iptv erreur de lecture - Forum TV & Vidéo
5 réponses
Salut,
Pour la 1ère erreur, j'ai l'impression qu'il y a soucis avec les quotes, et qu'il n'arrive pas à délimiter la fin de ton expression. L'expression entière contient 138 caractères, et l'erreur se situe au 162 ème caractère, ce qui me fait dire que les quotes sont à l'origine du problème...
Essaie d'écrire la même expression sans les quotes, du style :
Pour la 2nd, essaie comme ça :
Pour la 1ère erreur, j'ai l'impression qu'il y a soucis avec les quotes, et qu'il n'arrive pas à délimiter la fin de ton expression. L'expression entière contient 138 caractères, et l'erreur se situe au 162 ème caractère, ce qui me fait dire que les quotes sont à l'origine du problème...
Essaie d'écrire la même expression sans les quotes, du style :
sed '/^/{s/.*/INSERT IGNORE INTO matable1 (activ,mail) VALUES (1,blabla);\n\INSERT INTO matable2 (id,tid) VALUES(LAST_INSERT_ID(),507);/}' /monrepertoire/monfichier.sqlet voir si ça passe...
Pour la 2nd, essaie comme ça :
sed -e '1i\ BEGIN;' /monrepertoire/monfichier.sql
Merci jipicy.
Cela a résolu une erreur mais pas la premiere. Voici l'erreur :
Ce qui est curieux c'est que si je créais en test un script shell uniquement avec cette ligne de commande cela fonctionne parfaitement . Juste pour le détail dans mon script j'ai des doubles cotes :
Peux être une piste?
Cela a résolu une erreur mais pas la premiere. Voici l'erreur :
+ sed '/^/{s/.*/INSERT IGNORE INTO matable1 (activ,mail) VALUES (1,&);\n\INSERT INTO matable2 (id,tid) VALUES(LAST_INSERT_ID(),507);/}' /monrepertoire/monfichier.sql
sed: -e expression #1, char 160: Unknown option to 's'
Ce qui est curieux c'est que si je créais en test un script shell uniquement avec cette ligne de commande cela fonctionne parfaitement . Juste pour le détail dans mon script j'ai des doubles cotes :
sed "/^/{s/.*/INSERT IGNORE INTO matable1 (activ,mail) VALUES (1,&);\n\INSERT INTO matable2 (id,tid) VALUES(LAST_INSERT_ID(),507);/}"
Peux être une piste?
Toujours pareil erreur même en protégeant l'eperluette :
sed: -e expression #1, char 161: Unknown option to 's'
Merci
sed: -e expression #1, char 161: Unknown option to 's'
Merci
Tu peux me faire passer ton fichier "sql" (en MP si nécessaire) que je vois ce qu'il en est en live ;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question