発生回数を含むCSVファイルの重複値を印刷します。

発生回数を含むCSVファイルの重複値を印刷します。

入力例は次のとおりです。

John,Yes,123
Tom,No,345
Jason,Yes,567
Thomas,No,123
Jess,No,999
James,Yes,888
Lisa,No,345
Lou,Yes,777
Peter,No,123

3列目の値の発生回数を印刷したいのですが、1回以上発生した値だけを印刷したいと思います。したがって、上記の例では、望ましい出力は次のようになります。

3 123
2 345

sed/またはこれと同様にこれをどのように実行できますかawk

ベストアンサー1

cut -f3 -d, "$file" | sort | uniq -cd | sed 's/  *//'
  • cut3番目のフィールドのみを出力するには、カンマを区切り文字として使用します。
  • sortuniq使用できるように行を並べ替える
  • uniq -c-d重複行のみを出力する(つまり、一意の値を省略する)連続した重複行数を計算します。
  • 最後はsed先行スペースを削除します。

おすすめ記事