0

次の形式のログファイルがあります。

201208290101
201208290101
201208290101
201208290101
201208290101
201208291222
201208291222
201208291222
201208291222
201209300242
201209300242
201209300242

特定の時間に発生したイベントの数をカウントしたいので、ログファイルで特定のタイムスタンプが発生した回数をカウントする必要があります。たとえば、上記の出力は次のようになります。

201208290101  = 5
201208291222  = 4
201209300242  = 3

これを数える方法について何か提案はありますか?

4

3 に答える 3

4

ファイルを。にパイプするだけですuniq -c

$ uniq -c
201208290101
201208290101
201208290101
201208290101
201208290101
201208291222
201208291222
201208291222
201208291222
201209300242
201209300242
201209300242
^D
      5 201208290101
      4 201208291222
      3 201209300242
于 2012-10-03T04:17:41.757 に答える
1

あなたはawk連想配列をすることができます:

 awk '{a[$0]++;} END{for(i in a) print i," = ", a[i]}' filename
于 2012-10-03T04:22:01.683 に答える
1

すべてがソートされている場合は、

cat yourfile.txt | uniq -c

それ以外の場合は、uniqを使用する前に並べ替える必要があります。

cat yourfile.txt | sort | uniq -c
于 2012-10-03T04:26:29.357 に答える