グループと合計リスト

グループと合計リスト

bashを使用すると、リストからアイテム数を取得できますか?

a
b
a
cccc
b
a

希望の出力は次のようになります。

a 3
b 2
cccc 1

答え1

一般的なアプローチは、次sort | uniq -cを使用することです。

  3 a
  2 b
  1 cccc

実際に行の末尾に数字を入力する必要がある場合は、sedこの問題を解決することができます。

答え2

あなたはそれを使用することができますawk

awk '{
         arr[$0]+=1
     }
     END{
         for (item in arr){
             print(item, arr[item])
         }
     }' inputfile

arrキーが行全体($0)であり、値がキーが表示される回数である連想配列。最後に、配列全体を繰り返し、すべてのキーとその値を印刷します。

関連情報