一致する重複条件に基づいて重複行数を見つける

一致する重複条件に基づいて重複行数を見つける

デフォルトでは、Linuxサーバーに大きなテキストファイルがあり、最初の6桁に基づいて重複するエントリ数を計算したいと思います。

入力する:

1111110000000222982
112114
1111119292828
11101110
112114

出力:

111111 (2)
112114 (2)

この状況を処理するための最良の解決策は何ですか?

ベストアンサー1

一部のuniq実装では、次のことができます。

$ <file cut -c-6 | sort | uniq -cd
   2 111111
   2 112114

すべての実装が結合-c(計算)および-d(重複項目のみ出力)をサポートするわけではありません。

そうでない場合は、uniq -cパイプを使用して接続するawk '$1 > 1'か、すべてをするawkこれにより、ソート操作が節約されます(ただし、一意の文字列が多い場合は多くのメモリを使用できます(ここでは最大100万の異なる6つの文字列がありますが、それほど多くはありません))。

おすすめ記事