gpt4 book ai didi

linux - perl + 仅当八位字节是有效 IP 时才替换 IP 地址

转载 作者:太空宇宙 更新时间:2023-11-04 04:18:09 25 4
gpt4 key购买 nike

以下 perl one liner 代码的目标是替换前三个八位字节(如果四个八位字节是数字/数字 - xxx.xxx.xxx.digit )

  • 备注 - 我使用 Linux 和Solaris 机器

问题在于,perl one liner 还将替换前三个八位字节,而四个八位字节 IP 不是有效的 IP 八位字节(例如 5.5.5.555)

以下 Perl One liner 代码示例显示了 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 oneliner 代码中添加什么,为了替换前三个八位字节

如果四个八位字节是有效 IP(0 – 255 之间)

最佳答案

如果最后一个八位位组始终只是一个数字,那么您可以执行与模式开头相同的操作,并确保第一个八位位组之后没有数字。

s/(?<![\d.])\Q$ENV{OLD_IP}\E(?=\.\d(?!\d))/$ENV{NEW_IP}/g

这种方式比检查 0 到 255 之间的有效最终八位字节要容易得多,这看起来像

s/(?<![\d.])\Q$ENV{OLD_IP}\E(?=\.(?:1?\d?\d|2[0-4][0-9]|25[0-5])(?!\d))/$ENV{NEW_IP}/g

关于linux - perl + 仅当八位字节是有效 IP 时才替换 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15155406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com