【发布时间】:2013-02-15 19:36:18
【问题描述】:
下面的 perl one liner 代码的目标是替换前三个八位字节(如果四个八位字节是数字/数字 - xxx.xxx.xxx.digit)
- remark - 我用的是linux和solaris机器
问题是 perl one 行也将替换前三个八位字节,而四个八位字节 IP 不是有效的 IP 八位字节(例如 5.5.5.555)
以下 perl 单行代码示例显示了 perl 语法如何替换前三个八位字节,尽管四个八位字节不是有效 IP
# export OLD_IP=1.1.1
# export NEW_IP=5.5.5
# echo 1.1.1.555 | perl -i -pe 'next if /^ *#/; s/(?<![\d.])\Q$ENV{OLD_IP}\E(?=\.\d)/$ENV{NEW_IP}/g'
5.5.5.555
请告知需要在我的 perl 一行代码中添加什么, 为了替换前三个八位字节
仅如果四个八位字节是 VALID IP(介于 0 - 255 之间)
【问题讨论】:
-
你上一个问题怎么没有回答?
-
ikagami - 不是同一个quastion,在这种情况下我问的是如何编辑文件,而不是像previos quastion那样谈论如何匹配,previos quastion不能帮助我编辑文件!
-
@Ikegami 请告诉我如何使用 previos quastion 编辑文件(替换 IP) - grep + 使用正则表达式精确匹配 IP 地址????????