Antworten:
Ich habe es herausgefunden; Eine der uniq
Optionen ist -c
für "Präfixzeilen nach Anzahl der Vorkommen":
$ uniq -c
sort | uniq
A \ A \ A \ B \ A \ CC
, dessen Ausgang nur uniq -c
zeigen würde A 3
und später zeigen A 1
. Wenn Sie zuerst
Ich bin gerade mit einem ähnlichen Problem hergekommen. Daraus habe ich einen etwas fortgeschritteneren Befehl zusammengestellt, von dem ich hoffe, dass er für andere nützlich ist.
Wie Steven D in den obigen Kommentaren sagte, werden uniq
nur benachbarte Wiederholungszeilen gezählt, daher müssen Sie die Zeilen zuerst sortieren. Danach finden wir die eindeutigen Zeilen und sortieren sie erneut, sodass die am häufigsten vorkommenden Zeilen oben stehen.
sort file.txt | uniq -c | sort -nr > output.txt
Die Ausgabe wird in die Datei umgeleitet output.txt
. Wenn Sie die Ergebnisse nur in der Befehlszeile anzeigen möchten, entfernen Sie die Umleitung und ändern Sie den letzten Befehl in, sort -n
sodass sich die am häufigsten verwendete Zeile unten befindet, dh definitiv noch auf dem Bildschirm.
cat file.txt | sort
mit nur ersetzen sort file.txt
. :)
cat
etwas Interessanteres ersetzen kann . Da gibt es ja keine cat
.
< file.txt sort | uniq -c
. Dies ist einfach zu bearbeiten und vermeidet dennoch das Unnötige cat
.
uniq -c filename.txt | sed 's/[^0-9]*\\([0-9]\+\\) \\(.*\\)/\2 \1/'