我正在尝试使用 sed 执行内联搜索和替换,但我认为奇怪的字符会导致问题。
我的 config.inc 文件包含 2 行:
$GLOBALS['industry_id'] = '1';
yyyy
像这样简单的东西可以用 zzzz 代替 yyyy:
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