0

ファイルから複数のパターンをgrepし、それらをcountで印刷したい。私のパターンは

Error code [61440] Error Description 
Error code [61000] Error Description 
Error code [61040] Error Description 

[]可変長の数値が含まれており、null も含まれています。次のコマンドでカウントを取得できますが、それを取得するには、ファイルを表示して[].

cat  mylog.log |   grep  "Error code" | grep 61040 | wc -l

私の望ましい出力は次のようなものです

Error code [61440] = 90
Error code [61000] = 230
Error code [61040] = 567
4

4 に答える 4

0

sed内の数値のみを抽出し[]、並べ替えてカウントするために使用します。

$ sed 's/^.*\[\([0-9]*\)\].*$/\1/' < input | sort | uniq -c
1 61000
1 61040
1 61440
于 2013-11-14T08:39:26.890 に答える
0

使ってみてawk

awk -F'[][]' '/Error code/ {a[$2]++} END { for (x in a) printf "Error code [%s] = %d\n", x, a[x] }' mylog.log

サンプルデータの出力

Error code [61440] = 1
Error code [61000] = 1
Error code [61040] = 1
于 2013-11-14T08:53:41.277 に答える