sed を使用してインライン検索と置換を実行しようとしていますが、奇妙な文字が問題を引き起こしていると思います。
私のconfig.incファイルには2行が含まれています:
$GLOBALS['industry_id'] = '1';
yyyy
このような単純なものが機能し、yyyy を zzzz に置き換えます。
x="yyyy"
y="zzzz"
sed -i "s/${x}/${y}/" config.inc
しかし、このようなものは機能しません:
x="$GLOBALS['industry_id'] = '1';"
y="$GLOBALS['industry_id'] = '3';"
sed -i "s/${x}/${y}/g" config.inc
$ [ ] ' のような文字をエスケープする必要がありますか? (ただし、これも機能しません):
x="\$GLOBALS\[\'industry_id\'\] = \'1\'\;"
y="\$GLOBALS\[\'industry_id\'\] = \'3\'\;"
sed -i "s/${x}/${y}/g" config.inc
私は何が欠けていますか?
ありがとうクリス
更新: pfnuesel のおかげで、次のように動作します:
x="\\\$GLOBALS\\['industry_id'\\] = '1';"
y="$GLOBALS['industry_id'] = '3';"
sed -i "s/${x}/${y}/g" config.inc