私がしたい:
cat update_via_sed.sh | sed 's/old_name/new_name/' > new_update_via_sed.sh
私のプログラムで。
しかし、次のような変数を使用したいと思います。
old_run='old_name_952'
new_run='old_name_953'
試してみましたが、交換は発生しません(エラーなし)。私は試した:
cat update_via_sed.sh | sed 's/old_run/new_run/'
cat update_via_sed.sh | sed 's/$old_run/$new_run/'
cat update_via_sed.sh | sed 's/${old_run}/${new_run}/'
ベストアンサー1
次のことができます。
sed "s/$old_run/$new_run/" < infile > outfile
ただし、これは$old_run
正規表現として扱われるため、変数に含まれる特殊文字(/
または)は次のようになり.
ます。脱出する。同様に、$new_run
および&
文字は特別な処理を必要とし、その中の改行文字を\
エスケープする必要があります。/
$old_run
またはの内容が$new_run
あなたの管理下にない場合、批判的脱出を行うか、そうでない場合このコードはコード挿入の脆弱性と同じです。。