0

「zgrep」を使用して、いくつかの apache/nginx ログからいくつかの IP を見つけていますが、肯定的な結果のみを並べ替える方法が必要です。

私はこれを使用しています:

for i in `cat /var/tmp/list_of_ip.txt`; do
    zgrep -arcH $i /webstats/some_website/*/*.2012-10-1{7..9}* ;
done

多くのログファイルがあります。どちらが肯定的な結果を返すか知りたいだけです。

それらのほとんどは0、何も見つからなかったことを示す最後に出力され、一致した数が出力されるものもあります。それらのみを選択して結果をファイルに出力するにはどうすればよいですか?

ありがとう。

4

2 に答える 2

4

ログファイルを1回ずつ解凍することは避けたいので、次を使用する必要があります。

zgrep -l -F -f /var/tmp/list_of_ip.txt /webstats/some_website/*/*.2012-10-1{7..9}*

これにより、ログファイルが1回解凍され、モード( )で実行grepされ、ファイル()から検索する単語のリスト(IPアドレス)が読み取られ、一致するIPを1つ以上含むファイルのファイル名のみが一覧表示されます。アドレス()。 モードはメタ文字のない単語を検索します。メタ文字が必要な場合は、代わりに(オプションを使用して)使用できると思います。必要に応じて、セットのオプションを追加できます。他のものはこの文脈では冗長です。fgrep-F-f /var/tmp/list_of_ip.txt-lfgrepgrep -E-f-r-arcH

オプションで報告されているように、zgrep (gzip) 1.3.12とを使用してMac OSX10.7.5で行われたいくつかのカジュアルなテスト。grep (GNU grep) 2.5.1--version

于 2012-10-31T04:11:13.027 に答える
0

私はそれを持っていると思います..、grepそれらの最後に「:0」を含む結果をファイラーする別のものをそこに投げるだけです!

for i in `cat /var/tmp/list_of_ip.txt`
do zgrep -arcH $i /webstats/some_website/*/*.2012-10-1{7..9}* | grep -v :0$
done
于 2012-10-31T04:01:49.650 に答える