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