我有一个 csv 文件中的 IP 列表,我需要在一大堆存档日志中搜索任何遇到此 IP 的情况,但仅限于 1 月份的文件。
我首先尝试了这个:
for i in `cat /tmp/ips.csv`; do zgrep -rHc $i /webstats/2010/some_dir/*/*.2010-01*.access.gz ; done
但这不起作用。我得到:
bash: /usr/bin/zgrep: Argument list too long
但是我认为使用 find + xargs 但我不确定应该如何构建我的表达式。我在想这个:
find /logs/2010/some_dir/ -name *.2010-01*.access.gz -type f -print0 | xargs zgrep -rHc `/tmp/ips.csv` {}
但是有些东西看起来不太好。