Linux Command Line

Effizientes Zählen eindeutiger Zeilen in Linux-Dateien

Spread the love

Das Zählen eindeutiger Zeilen in einer Datei ist eine häufige Aufgabe unter Linux. Dieser Artikel stellt zwei effiziente Kommandozeilenmethoden vor: die Verwendung von sort und uniq sowie die Verwendung von awk.

Inhaltsverzeichnis

Zählen eindeutiger Zeilen mit sort und uniq

Diese Methode kombiniert die Leistungsfähigkeit von sort und uniq für einen unkomplizierten Ansatz. sort ordnet die Zeilen alphabetisch an, eine Voraussetzung für uniq, das nur aufeinanderfolgende identische Zeilen zählt. Die Option -c in uniq fügt jeder Zeile eine Zählervoranstellung hinzu.

So zählen Sie eindeutige Zeilen in file.txt:


sort file.txt | uniq -c

Dies zeigt jede eindeutige Zeile mit ihrer Anzahl an. Um die Gesamtzahl der eindeutigen Zeilen zu erhalten, leiten Sie die Ausgabe an wc -l weiter:


sort file.txt | uniq -c | wc -l

Beispiel:

Wenn file.txt enthält:


apple
banana
apple
orange
banana
apple

gibt sort file.txt | uniq -c aus:


      3 apple
      2 banana
      1 orange

Und sort file.txt | uniq -c | wc -l gibt aus:


3

Zählen eindeutiger Zeilen mit awk

awk bietet eine flexible Lösung, die besonders für komplexere Szenarien nützlich ist. Diese Methode verwendet ein assoziatives Array, um eindeutige Zeilen und deren Anzahl zu verfolgen.

So zählen Sie eindeutige Zeilen und zeigen sie mit ihrer Anzahl an:


awk '{count[$0]++} END {for (line in count) print count[line], line}' file.txt

Dieses Skript erhöht den Zähler für jede Zeile im count-Array, wobei die Zeile als Schlüssel verwendet wird. Der END-Block iteriert durch das Array und gibt die Anzahl jeder Zeile und die Zeile selbst aus.

Um nur die Gesamtzahl der eindeutigen Zeilen zu erhalten:


awk '{count[$0]++} END {print length(count)}' file.txt

Dies verwendet length(count), um die Anzahl der eindeutigen Zeilen (die Größe des Arrays) direkt auszugeben.

Beispiel:

Mit der gleichen file.txt erzeugt der erste awk-Befehl die gleiche Ausgabe wie die sort | uniq -c-Methode. Der zweite awk-Befehl gibt 3 aus, was drei eindeutige Zeilen anzeigt.

Wählen Sie die Methode, die Ihren Anforderungen am besten entspricht. sort und uniq sind für einfache Aufgaben einfacher; awk bietet mehr Flexibilität für komplexe Szenarien.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert