gpt4 book ai didi

linux - 使用 sed 从列表中删除 IPv6 地址

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:45 26 4
gpt4 key购买 nike

我使用 avahi 填充了网络范围内的 IP 地址列表。然后使用 sed 优化填充的信息以提供以下输出

Initial data = address = [xxx.xxx.xxx.xxx]
Refined data = xxx.xxx.xxx.xxx

执行此操作的命令如下:

avahi-browse -alrt | grep -w address | sort -u | sed -e 's/address = //' | sed -e 's/\[//' | sed -e 's/\]//'

这在大多数情况下都可以正常工作,但在一些奇怪的情况下地址如 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx 显示在列表中,我想省略它们。

我知道我可以使用正则表达式或其他东西来确保数据始终匹配有效的 ip,即 xxx.xxx.xxx.xxx,但我不确定如何去做。任何帮助深表感谢。

该命令使用 bash 脚本在 linux 上运行,我希望它只返回 xxx.xxx.xxx.xxx 格式的有效 IP 地址。

最佳答案

用这个替换你的 3 个 sed 命令:

sed 's/address = \[\|\]//g' 

或者:

sed -r 's/address = \[|\]//g' 

编辑:要删除无效的 IP 也可以使用此 sed:

sed -r -e 's/address = \[|\]//g' -e 's/= +([^:]+\:){5,}.*$/=/' file

关于linux - 使用 sed 从列表中删除 IPv6 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19955206/

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