使用 sed 更改区域文件

使用 sed 更改区域文件

我有这个 DNS 区域文件,但无法将资源记录类型 A 更改为 CNAME

@ IN SOA    ns1.domain.com. webdev.domain.com. (
        2006080101  ; serial
        8H      ; refresh
        2H      ; retry
        1W      ; expire
        4h)     ; minimum ttl

        NS  ns1.domain.com


domain.com      A   192.168.0.1

mail2           A   192.168.0.2

www         CNAME   domain.com

webmail                 CNAME     www

sed -i 's/A/CNAME/g' dns-zone.file

上述 sed 语句将 A 资源记录更改为 CNAME,但 CNAME 也更改为 CNCNAMEME。

我怎样才能仅更改 A 资源记录而不更改任何其他字符串?

答案1

发生这种情况是因为A是的子字符串CNAME,因此正则表达式匹配。

尝试一下sed -i 's/\sA\s/CNAME/g' dns-zone.file,这将需要在 周围留有空格A

相关内容