Linuxコマンドを使用してログをカウントする方法を学ぶ

プログラムがテスト環境または正式な環境にデプロイされた後、問題の発見と解決に役立つログを表示する必要があることがよくあります。たとえば、ログ内のインターフェイス呼び出しの成功と失敗の数をカウントして、高値を最適化する必要があります。並行性の状況。

1.ログ内のキーワードに基づく統計

cat log.txt | grep -o'keyword '| wc -l

特記事項:インターネット上には、cat log.txt | grep'keyword '| wc-lまたはcatlog.txt | grep -c'keyword'を直接使用する記事が多数あります。これは、Ifの場合、行数でカウントされるためです。ログ内の3つのキーワードはすべて1行にあり、結果は3ではなく1になります。

使用したコマンド:

grep 

パラメータなしの従来のgrepプログラムは、RE文字列に一致する文のみを出力します。一般的なパラメータは次のとおりです。-
v:逆モード、RE文字列を「含まない」文のみを出力します。-
r:再帰モード、すべてのファイルサブディレクトリは同時に処理できます。-
q:サイレントモード結果は出力されません(stderrを除く。通常、戻り値を取得するために使用されます。trueの場合はtrue、それ以外の場合はfalseです)
。-i:大文字と小文字を区別しません。-
w :\ <word \>と同様の単語全体の比較。
-n:同時に行番号を出力します-
c:比較に一致する行数のみを出力します-
l:比較に一致するファイル名のみを出力します。-
o:一致するRE文字列のみを出力します(これはgnuの新しいバージョンに固有であり、すべてのバージョンがサポートしているわけではありません。)-
E:egrepに切り替えます。

トイレ

パラメータ:

-cまたは--bytesまたは--charsは、バイト数のみを表示します。

-lまたは--linesは、行数のみを表示します。

-wまたは--wordsは、単語数のみを表示します。

2.並べ替え(すっきりとしたフォーマットの場合)

猫lastb.log | awk '{print $ 1; $ NF}' | 並べ替え| uniq -c | sort -nr

特記事項:この方法は、より整頓され、より多くのデータ項目を持つログ用であり、すべての異なる項目のカウントを一度に表示できます。

使用したコマンド:

awk

このコマンドには多くの用途があり、より複雑です。詳細については、https://www.cnblogs.com/-beyond/p/9254007.htmlを参照してください。ここでは、上記で使用したものについてのみ説明します。

$ 1変数は分離フィールドの最初の値を表し、$ NF変数は分離フィールドの最後の値を表します。

ソート

-b各行の先頭にあるスペース文字を無視します。

-cファイルが順番にソートされているかどうかを確認します。

-d並べ替えるときは、英字、数字、空白文字を扱い、他の文字は無視してください。

-fソートするときは、小文字を大文字として扱います。

-iソート時に、040から176までのASCII文字を除いて、他の文字は無視されます。

-mいくつかのソートされたファイルを結合します。

-M月の省略形に従って最初の3文字を並べ替えます。

-n値の大きさに従ってソートします。

-o <出力ファイル>ソートされた結果を指定されたファイルに保存します。

-r逆の順序で並べ替えます。

-t <区切り文字>ソートに使用するフィールド区切り文字を指定します。

+ <開始フィールド>-<終了フィールド>指定されたフィールドでソートします。範囲は、開始フィールドから終了フィールドの前のフィールドまでです。

uniq

-cまたは--countは、各列の横に行が繰り返される回数を表示します。

-dまたは--repeatedは、繰り返される行と列のみを表示します。

-f <field>または--skip-fields = <field>比較で指定されたフィールドを無視します。

-s <charposition>または--skip-chars = <charsposition>比較で指定された文字を無視します。

-uまたは--uniqueは、ランクを1回だけ表示します。

-w <charsposition>または--check-chars = <chars position>は、比較する文字を指定します。

 つづく。

おすすめ

転載: blog.csdn.net/qq_36961530/article/details/96487827