[英]sed regex match and replace any last digit
我有很多包含以下ipaddress的文件,并且我想替换ip的最后一位,看起来我在努力提出正确的正则表达式
文件1
IPADDR=10.30.2.26
NETMASK=255.255.0.0
GATEWAY=10.30.0.1
我想更换10.30.2.26
到10.30.2.27
使用SED但不知何故,我缺少的东西,我已经试过以下。
我有很多文件要替换,最后一位可以是任何数字。
我试过sed 's/[^IPADDR].$/7/g' file1
如何匹配^IPADDR{anything}$
之间的^IPADDR{anything}$
?
在您的正则表达式中, [^IPADDR]
是一个字符类 ,用于搜索除方括号中列出的字符以外的任何字符。 我不确定那不是您想要的。
您可以改用地址来查找以IPADDR
( /^IPADDR/
)开头的行,并在其上应用替换命令:
sed '/^IPADDR/s/[0-9]$/7/' file
您可以使用以下命令:
sed -r 's/(^IPADDR=[0-9.]+)([0-9]$)/\17/g' file
打印:
IPADDR=10.30.2.27
NETMASK=255.255.0.0
GATEWAY=10.30.0.1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.