我需要一个正则表达式,查找<ipaddress> [x]创建并排除一个特定的IP地址</ipaddress>

时间:2012-02-03 21:24:45

标签: regex

我想一次打开一个日志文件并查找某个字符串......

13:15:55 <AN IP ADDRESS> [2]created /myfile.zip 226 0

关键是想要查找具有HAS IP地址但排除一个特定IP地址然后具有“[2]创建”字符串部分的文件。括号内的数字可能有所不同。

感谢。

赛斯

2 个答案:

答案 0 :(得分:1)

for f in `find /path/to/files -iname '*FILENAME*PATTERN*' -exec egrep -l '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) \[0-9\]created'`
    fgrep -v -l 'SPECIFIC_IP_TO_FILTER_OUT' $f
done    

或类似于bash的内容,GPU grep可能适合您。

答案 1 :(得分:0)

不确定您使用的文本数据类型,但是这是您尝试排除的唯一IP地址,并假设所有其他IP地址都是好的。 只是排除下面的特定IP地址对你有用吗?您可以将IP地址值替换为您的IP地址值。

排除表达。 ^(144.44.11.222)

查找所有IP匹配: \ d {1,3}。\ d {1,3}。\ d {1,3}。\ d {1,3}

如果这不起作用,我建议应用查找所有IP,然后继续从该列表中排除。

希望有所帮助。