我想一次打开一个日志文件并查找某个字符串......
13:15:55 <AN IP ADDRESS> [2]created /myfile.zip 226 0
关键是想要查找具有HAS IP地址但排除一个特定IP地址然后具有“[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,然后继续从该列表中排除。
希望有所帮助。