寻找合适的正则表达式来过滤掉各种IP地址:
假设我有一个这样的日志文件:
Sep 14 12:37:03 100.100.100.145:64439 -> 180.180.150.2:25 (TCP) SMTP
Sep 14 15:36:01 100.100.100.145:64439 -> 180.180.180.2:25 (TCP) SMTP
Sep 14 12:37:03 100.100.100.145:64439 -> 180.180.180.2:25 (TCP) SMTP
Sep 14 15:36:01 100.100.100.145:64439 -> 180.180.180.2:25 (TCP) SMTP
Sep 14 12:37:03 100.100.100.145:64439 -> 180.180.180.2:25 (TCP) SMTP
Sep 14 15:36:01 100.100.100.145:64439 -> 180.180.180.2:25 (TCP) SMTP
我能够搜索:
\b180\.180\.180\.2\:25\b.*SMTP
但我想找到一切不正确的SMTP服务器,所以我寻找一个"负面词边界"。
对此有何建议?
答案 0 :(得分:1)
答案 1 :(得分:0)
awk '$6 ~ /^180\.180\.1[58]0\./ && $6 !~ /\.180\.2:25$/ && $8 == "SMTP"'
将打印与第一个正则表达式匹配的行而不是第二个正则表达式。
你的问题并不能说明这是否正是你想要的,但它应该会让你开始。