Sed - 's'の未知のオプション

Sed - 's'の未知のオプション

sedスクリプトからコマンドを実行します。

sed -i "${1}s/${2}=.*/${2}=${REPLY}/" $3

これはエコです。

sed -i 13s/log4j.appender.ROOT2.File=.*/log4j.appender.ROOT2.File=/app/TET/log.log/ /applis/DIAPASON/diapason1/conf/log4j.properties

私の間違い:

sed: -e expression n°1, character 61: unknown option forはい

答え1

変数に複数の/文字があるので$REPLY混乱していますsed

s///ほとんどのPythonバージョンではコマンドに対して代替区切り文字を選択できるのでsed、私なら次のように試してみます。

sed -i "${1}s|${2}=.*|${2}=${REPLY}|" $3

これは/sedを置き換えてin(希望的に)が解釈されないようにします|/${REPLY}sed

答え2

コマンド区切り文字として任意の文字を使用します。次の例を参照してください。

sed -Ei "s|$k|$j|g" filename.txt

関連情報