gnu sort/uniq: 回数によるソート

gnu sort/uniq: 回数によるソート

sortGNU を使用して、uniq数値または英数字によるソートではなく、最も頻繁に出現する項目を一番上に表示するにはどうすればよいですか? 例list.txt:

1
2
2
2
3
3

「2」は 3 回出現するため、一番上に置き、その後に「3」と「1」が続く必要があります。

$ cat list.txt | "some sort/uniq magic combo"
2
3
1

答え1

このような:

cat list.txt | sort | uniq -c | sort -rn

これには-c各一意の行のカウントが含まれており、それに基づいて並べ替えることができます。

ソート後にカウントを削除する場合は、次のようにします。

cat list.txt | sort | uniq -c | sort -rn | awk '{ print $2; }'

関連情報