如何用引号替换此文本?

时间:2014-09-09 08:44:03

标签: regex sed

我想替换

$rcmail_config['default_host'] = '';
/var/lib/roundcube/config/main.inc.php

中的

$rcmail_config['default_host'] = 'localhost';

我试过了:

sed -i "s/$rcmail_config['default_host'] = '';/$rcmail_config['default_host'] = 'localhost';/g" /var/lib/roundcube/config/main.inc.php

sed -i s/$rcmail_config['default_host'] = '';/$rcmail_config['default_host'] = 'localhost';/g /var/lib/roundcube/config/main.inc.php

但它不起作用。

我接下来可以尝试什么?

1 个答案:

答案 0 :(得分:2)

您需要转义$[符号,并且您不需要在替换部分重复相同的字符串。除此之外,您可以使用捕获组。

sed -i "s/\(\$rcmail_config\['default_host'\] = \)'';/\1'localhost';/g" file