Pourquoi ce script bash
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
sortie ->
sed: -e expression #1, char 53: unterminated `s' command
La s
commande dans sed
, utilise une syntaxe spécifique:
s/AAAA/BBBB/options
où s
est la commande de substitution, AAAA
est le regex que vous souhaitez remplacer, BBBB
est avec ce que vous voulez qu'il soit remplacé et options
est l'une des options de la commande de substitution, telles que global ( g
) ou ignore case ( i
).
Dans votre cas spécifique, il vous manquait la barre oblique finale /
, si vous l'ajoutez, sed
cela fonctionnera très bien:
➜ ~ sed 's/database_name: [^ ]*/database_name: kartable_$ME/'
database_name: something
database_name: kartable_$ME
info sed 'The "s" Command'
inclut la description complète et l'utilisation de la commande s.
Manquant /
à la fin.
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME/" $PARAM_FILE
/
pas leg
,g
c'est pour le global qui peut ne pas être souhaité.