我正在尝试在文件中搜索单词:"http://{$_SERVER["HTTP_HOST"]}"
如果我找到与该项目相关的行,我想在右花括号“}”旁边添加/suitecrm/
或将其替换为:'http://{$_SERVER["HTTP_HOST"]}/suitecrm'
,但是我需要逃脱括号而不丢失它们,
我怎样才能做到这一点?请!!!
这是我的代码:
sudo grep -lir "HTTP_HOST" /var/www/html/suitecrm/ | xargs sudo sed -i 's,http://{$_SERVER["HTTP_HOST"]},http://{$_SERVER["HTTP_HOST"]}/suitecrm,g’ ;
最佳答案
尝试:
sed -i 's,http://{\$_SERVER\["HTTP_HOST"\]},http://{\$_SERVER\["HTTP_HOST"\]}/suitecrm,g’
例如:
$ echo 'http://{$_SERVER["HTTP_HOST"]}' | sed 's,http://{\$_SERVER\["HTTP_HOST"\]},http://{\$_SERVER\["HTTP_HOST"\]}/suitecrm,'
http://{$_SERVER["HTTP_HOST"]}/suitecrm
实际上,我只是将
$
替换为\$
,将[
替换为\[
,并且将]
替换为\]
。它称为
Escaping
,某些字符在RE中具有特殊含义,当您逐字地引用它们时,必须对其进行Escape
。检查一下:
Escapes