如何使用sed命令编辑具有IPv4地址的线路



我需要通过在包含Ip地址的行中添加一些选项来修改ntp配置文件。我已经使用sed命令尝试了很长时间,但无法修改线路,除非我不知道IP地址。比方说,我有几行,服务器172.0.0.1服务器10.0.0.1

我需要在ip地址后添加iburst选项。我试过像…那样发号施令。。sed -e 's/(d{1,3}.d{1.3}.d{1,3}.d{1,3})/ 1 iburst/g' ntp_filesed -e 's/^server +d{1,3}.d{1,3}.d{1,3}.d{1,3}/server 1.2.3 iburst/g'ntp_file但它并没有修改线路。任何形式的建议都会被真正地告知。

您用作POSIX BRE的正则表达式无法匹配预期字符串,原因是sed不支持d简写类、范围限定符中的点被误用以及分组和范围限定符的转义错误。

您可以使用

sed -E -i 's/[0-9]{1,3}(.[0-9]{1,3}){3}/ & iburst/g' ntp_file

POSIX ERE(使用-E选项启用(表达式表示匹配

  • [0-9]{1,3}-一到三位数字
  • (.[0-9]{1,3}){3}-三次出现一个点和一到三个数字

替换模式为& iburst,其中&代表整个比赛。

g标志将替换所有出现的内容。

最新更新