我正尝试在文件中搜索单词:"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’ ;
答案 0 :(得分:0)
尝试:
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