1

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` {}

しかし、何かがうまく見えません。

4

1 に答える 1

2

これを試して :

find /logs/2010/some_dir -name '*.2010-01*.access.gz' -type f -print0 | xargs -0 zgrep -Hc -f /tmp/ips.csv
于 2013-02-28T17:43:00.380 に答える