在方括号内搜索和替换



我已经浏览了许多线程并尝试了不同的设置来使用 Sed 和 AWK 执行搜索和替换,但是,我并没有那么成功。

我需要用relayhost = [smtp.mydomain.com]替换#relayhost = [mailserver.isp.tld].

我在下面使用了两个命令,但两个命令都没有提供所需的结果。

sed -i 's/#relayhost = [mailserver.isp.tld]/relayhost = [smtp.mydomain.com]/g' /etc/postfix/main.cf. 

也尝试过

sed -e '0,/#relayhost = [mailserver.isp.tld]/{//i[smtp.mydomain.com]' -e '}' /etc/postfix/main.cf

我需要取消注释该行并将内容侧更改为方括号。有什么建议为什么它不起作用吗?

您需要

转义模式中的[],以及在正则表达式中具有特殊含义的其他字符,在本例中为.

sed -i 's/#relayhost = [mailserver.isp.tld]/relayhost = [smtp.mydomain.com]/' /etc/postfix/main.cf. 

作为旁注,我删除了/g标志,您不需要它。

另请参阅此相关答案,以处理模式中的转义元字符。

相关内容

  • 没有找到相关文章

最新更新