it-swarm-ja.tech

各行がファイルに出現する回数を数える

私が含んでいるファイルがあるとしましょう:

A
A
A
B
CC

次のような出力が必要です。

A 3
B 1
CC 1
24
Cheng

私はそれを考え出した; uniqのオプションの1つは-c、「出現回数による行のプレフィックス」:

$ uniq -c
25
Cheng

私は同様の問題を抱えてここに来ました。このことから、もう少し高度なコマンドを何とかまとめることができました。

上記のコメントでSteven Dが述べたように、uniqは隣接する繰り返し行のみをカウントするため、最初に行をソートする必要があります。その後、一意の行を見つけ、再度ソートして、最も出現頻度の高い行を上に配置します。

sort file.txt | uniq -c | sort -nr > output.txt

出力はファイルoutput.txtにリダイレクトされます。コマンドラインで結果を表示したいだけの場合は、リダイレクトを削除し、最後のコマンドをsort -nに変更して、最も一般的な行が一番下、つまり画面に表示されるようにします。

16
DisgruntledGoat