Das Folgende wird tun, was Sie wollen ... obwohl es viele andere Möglichkeiten gibt, um dies zu erreichen ... zum Beispiel mit gawk
der Antwort von Kamil.
- Der erste
sort
ordnet die Daten nach Zeilendaten an uniq -c
zählt die Anzahl der übereinstimmenden Vorkommen (sie müssen Nachbarn sein)sort -nr
sortiert nach Anzahl der Vorkommen in umgekehrter Reihenfolge- Die
while
Schleife durchläuft jede Zeileread n l
nimmt die Zählung inn
und die Zeilendaten in aufl
- Die
for
Schleife wirdn
Zeiten durchlaufen echo "$"
gibt die Zeilendaten aus
( sort \ | uniq -c \ | sort -nr \ | while read n l; do \ for i in $(seq $); do \ echo "$"; \ done; \ done ) <<"EOF" a b b b b c c d d d EOF