2016-09-14 78 views
0

寻找合适的正则表达式过滤掉各种IP地址:过滤掉某个IP adreess

可以说我有这样的日志文件:

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

你使用'grep'吗?如果你想找到所有不匹配的东西,请使用'grep -v ' –

+0

我不使用grep,不适用。 – user3186759

+0

你的编程语言是什么? – Jan

回答

0
awk '$6 ~ /^180\.180\.1[58]0\./ && $6 !~ /\.180\.2:25$/ && $8 == "SMTP"' 

将打印与第一个正则表达式匹配而不是第二个正则表达式的行。

你的问题不能揭示这是否正是你想要的,但它应该有希望让你开始。