2013-02-28 2 views
1

У меня есть список IP-адресов в csv-файле, и мне нужно искать любые встречи с этими IP-адресами в целом буфере архивных журналов, но только для файла в январе.grep некоторые архивные журналы с помощью find и xargs

я впервые попробовал это:

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 

Однако я думал, что с помощью функции поиска + xargs, но я не уверен, что о том, как я должен строить свое выражение. Я думал об этом:

find /logs/2010/some_dir/ -name *.2010-01*.access.gz -type f -print0 | xargs zgrep -rHc `/tmp/ips.csv` {} 

Но что-то не выглядит, что хорошо.

+0

кошки файл | grep IP | grep DATE? – Babblo

ответ

2

Попробуйте это:

find /logs/2010/some_dir -name '*.2010-01*.access.gz' -type f -print0 | xargs -0 zgrep -Hc -f /tmp/ips.csv 

 Смежные вопросы

  • Нет связанных вопросов^_^