なぜこのbashスクリプト
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
出力->
sed: -e expression #1, char 53: unterminated `s' command
なぜこのbashスクリプト
ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF
出力->
sed: -e expression #1, char 53: unterminated `s' command
回答:
のsコマンドsedは、特定の構文を使用します。
s/AAAA/BBBB/options
where sは置換コマンド、置換AAAAする正規表現、置換対象の正規表現BBBB、およびoptionsグローバル(g)や大文字と小文字を区別しない()などの置換コマンドのオプションのいずれかですi。
あなたの特定のケースでは、最後のスラッシュが欠落していましたが/、それを追加するとsedうまく動作します:
➜ ~ sed 's/database_name: [^ ]*/database_name: kartable_$ME/'
database_name: something
database_name: kartable_$ME
info sed 'The "s" Command' sコマンドの完全な説明と使用法が含まれています。
/not が欠落していましたがg、これgはグローバル向けであり、望ましくない可能性があります。