Wenn ich eine Textdatei mit folgendem Inhalt habe
red apple
green apple
green apple
orange
orange
orange
Gibt es einen Linux-Befehl oder ein Linux-Skript, mit dem ich das folgende Ergebnis erzielen kann?
1 red apple
2 green apple
3 orange
linux
text
duplicates
Zeit läuft
quelle
quelle
-d
Notiz.uniq -c file
und falls die Datei noch nicht sortiert ist:
sort file | uniq -c
quelle
Versuche dies
quelle
quelle
Können Sie mit einer alphabetischen, geordneten Liste leben:
?
oder
-u steht für einzigartig und Einzigartigkeit wird nur durch Sortieren erreicht.
Eine Lösung, die die Ordnung bewahrt:
und mit einer Datei
Die letzten beiden entfernen nur Duplikate, die sofort folgen - was zu Ihrem Beispiel passt.
Druckt zwei Äpfel, die durch eine Banane geteilt sind.
quelle
Um nur eine Zählung zu bekommen:
So erhalten Sie eine sortierte Anzahl:
BEARBEITEN
Aha, das war NICHT entlang der Wortgrenzen, mein schlechtes. Hier ist der Befehl für vollständige Zeilen:
quelle
Hier ist ein einfaches Python-Skript mit dem Zählertyp . Der Vorteil besteht darin, dass hierfür die Datei nicht sortiert werden muss, im Wesentlichen ohne Speicher:
Ausgabe:
oder Sie können einen einfachen Einzeiler verwenden:
quelle