我有很多包含以下ipaddress的文件,并且我想替换ip的最后一位,看起来我在努力提出正确的正则表达式
file1
IPADDR=10.30.2.26
NETMASK=255.255.0.0
GATEWAY=10.30.0.1
我想使用sed将10.30.2.26
替换为10.30.2.27
,但由于某种原因我想念一些东西,因此尝试了以下操作。
我有很多文件要替换,最后一位可能是任何数字。
我尝试过sed 's/[^IPADDR].$/7/g' file1
我如何匹配^IPADDR{anything}$
之间的任何内容?
答案 0 :(得分:2)
在正则表达式中,[^IPADDR]
是character class,用于搜索除方括号中列出的字符以外的任何字符。我不确定那不是您想要的。
您可以改用地址来查找以IPADDR
(/^IPADDR/
)开头的行,并在其上应用替换命令:
sed '/^IPADDR/s/[0-9]$/7/' file
答案 1 :(得分:2)
您可以使用以下命令:
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