web-dev-qa-db-ja.com

UNIXログファイルで最も頻繁に発生するエラーメッセージをgrepする方法

ファイルの例のApacheログファイルがある場合

タイムスタンプのないUNIXログファイルで最も頻繁に発生するエラーメッセージを抽出する方法

重要なのは、最も頻繁に発生するエラーメッセージがリストの一番上に来ることです

7
Jaya William

cat /tmp/file

ERROR 1 1234
ERROR 2 1234
ERROR 3 1234
ERROR 4 1234
ERROR 4 1234
ERROR 3 1234
ERROR 2 1234
ERROR 5 1234
ERROR 1 1234
ERROR 4 1234
ERROR 1 1234
ERROR 1 1234
ERROR 1 1234
ERROR 3 1234
ERROR 2 1234
ERROR 1 1234
ERROR 4 1234
ERROR 1 1234
ERROR 4 1234
ERROR 1 1234
ERROR 2 1234

grep "ERROR" /tmp/file | sort | uniq -c | sort -r

  8 ERROR 1 1234
  5 ERROR 4 1234
  4 ERROR 2 1234
  3 ERROR 3 1234
  1 ERROR 5 1234

最初の列は、各文字列の出現回数を示しています説明:

grep "ERROR" /tmp/file\ # select only ERROR string
| sort\ # order
| uniq -c\ #  count duplicate items
| sort -rn # reverse order and use numeric sort

上位5つのエラーについては、|head -n5

11
Nikolay Lomakin

一意のエラーを取得するには、タイムスタンプを切り落とす必要があると思います

grep 'エラーメッセージ'/logfiles |カット-d '' -f6- |並べ替え| uniq -c |ソート-nr

1
vsingh