用 Apex 字符替换 Sed

Sed substitution with Apex character

我正在尝试实施以下替换

sed -i 's/$config['default_host'] = '';/$config['default_host'] = 'localhost';/' /etc/roundcube/config.inc.php

但它不起作用。

我想要做的是在文件 /etc/roundcube/config.inc.php

中用 $config['default_host'] = 'localhost'; 替换 $config['default_host'] = '';

有什么想法吗?

您应该转义特殊字符,因为 sed$ 视为行中字符的结尾

sed "s/$config\['default_host'\] = '';/$config['default_host'] = 'localhost';/" fileName

使用分组概念

sed "s/\($config\['default_host'\] = \)'';/'localhost';/" fileName

输出:

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