我想找到一个最有效的正则表达式,一次搜索即可找到三个IP地址,但是我不确定是否可以使用更高效(更快)的语法。
我尝试一次搜索一个地址,但是我很好奇是否有更快的方法。
zgrep -a -i 192\.168\.1\.(10|23|34) *.* >> Results.txt
我没有收到任何错误。我真的只是想找出我是否可以使用更快的语法。
答案 0 :(得分:1)
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
答案 1 :(得分:0)
删除忽略大小写-i
标志可以使其更快。对于固定的字符串匹配,例如您的示例中的3种可能的匹配,grep -F
或grep -f
也是有用的。
如果文件很大,也可以使用sift
。