首页 > 解决方案 > 使用正则表达式高效搜索 IP 地址

问题描述

我想找到最有效的正则表达式来在一次搜索中找到三个 IP 地址,但我不确定是否有更有效(更快)的语法可以使用。

我试过一次搜索一个地址,但我很好奇是否有更快的方法。

zgrep -a -i  192\.168\.1\.(10|23|34) *.* >> Results.txt

我没有收到任何错误。我真的只是想找出是否可以使用更快的语法。

标签: regexgrepzgrep

解决方案


idk 大约更快(也许删除 -a 和 -i 会有所不同,idk),但这会更准确,因为它可以避免与包含目标 IP 地址作为子字符串的较长字符串的错误匹配:

zgrep -E '(^|[^0-9])192\.168\.1\.(10|23|34)([^0-9]|$)' file

如果这不是问题,那么这会更快:

printf '192.168.1.10\n192.168.1.23\n192.168.1.34\n' | zgrep -F -f- file

推荐阅读