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
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
Réponses:
La scommande dans sed, utilise une syntaxe spécifique:
s/AAAA/BBBB/options
où sest la commande de substitution, AAAAest le regex que vous souhaitez remplacer, BBBBest avec ce que vous voulez qu'il soit remplacé et optionsest 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, sedcela 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.
/pas leg,gc'est pour le global qui peut ne pas être souhaité.