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` {}
しかし、何かがうまく見えません。