我需要替换我的区域文件中的序列,我认为最简单的方法是使用sed来更改它。我有以下几行要测试。
@在SOA ns1.domain.com中。webdev.domain.com网站。(
200608041;序列号
8小时;刷新
2小时;重试
1W;过期
4h);最小ttl
NS ns1.domain.com网站。
NS ns2.domain.com.域名。
MX 10 mail1.domain.com。
MX 20邮箱2.domain.com。
域名.com。甲255.255.255.255
邮件1 A 255.255.255.255
邮件2 A 10.10.10.10
www CNAME domain.com。
ftp域名www
电子邮件CNAME www
我使用http://rubular.com/创建的正则表达式如下。在重建它的regex我得到匹配只有一行。\s*[0-9]\s;\s*serial
所以在sed中,我将按如下方式使用它。sed -i 's/\s*[0-9]\s;\s*serial/20091218 ; serial/g' *.zone
我的问题是这不会改变文件中的任何内容。我已经试过几次了。谢谢你的帮助
最佳答案
在第二个“\s”后面需要一个星号
sed -i 's/\s*[0-9]\s*;\s*serial/20091218 ; serial/' *.zone
再放几样东西进去也没什么害处:
sed -i 's/^\s*[0-9]\s*;\s*serial\s$/20091218 ; serial/' *.zone
我去掉了“g”,因为你可能不会在一条线上出现多次。