uniq (Eindeutig)
100%

Text-Fu · Lektion 14

uniq (Eindeutig)

Lerne, benachbarte Gruppen gleicher Zeilen mit uniq zusammenzufassen, zu zählen oder zu filtern.

Der Befehl uniq vergleicht jede Eingabezeile mit ihrer Vorgängerzeile. Er kann benachbarte Gruppen gleicher Zeilen zusammenfassen, zählen oder auswählen, sucht jedoch nicht in der gesamten Datei nach getrennten Duplikaten.

Benachbarte doppelte Zeilen zusammenfassen

Angenommen, reading.txt enthält gruppierte Werte:

book
book
paper
paper
article
article
magazine

Führe uniq ohne Filteroption aus, um eine repräsentative Zeile aus jeder benachbarten Gruppe auszugeben:

$ uniq reading.txt
book
paper
article
magazine

Die Eingabedatei bleibt unverändert, weil das Ergebnis nach stdout geschrieben wird.

Was bewirkt uniq reading.txt standardmäßig?

Benachbarte Gruppen zählen

Mit -c stellst du jeder Ausgabegruppe die Anzahl ihrer aufeinanderfolgenden Eingabezeilen voran:

$ uniq -c reading.txt
      2 book
      2 paper
      2 article
      1 magazine

Diese Werte sind Lauflängen und keine globalen Häufigkeiten, sofern nicht zuvor alle gleichen Zeilen nebeneinander angeordnet wurden.

Was beschreibt die Zahl von uniq -c?

Einmalige oder wiederholte Gruppen auswählen

Mit -u gibst du nur Gruppen aus, die genau eine Zeile enthalten:

$ uniq -u reading.txt
magazine

Mit -d gibst du eine repräsentative Zeile aus jeder benachbarten Gruppe mit mehr als einer Zeile aus:

$ uniq -d reading.txt
book
paper
article

GNU uniq -D gibt jede Zeile aus wiederholten Gruppen aus, während das kleine -d ihren Wert jeweils einmal ausgibt.

Welcher Befehl gibt nur benachbarte Gruppen aus, die genau einmal vorkommen?

Welcher Befehl gibt für jede benachbarte Gruppe mit mehr als einem Vorkommen eine Zeile aus?

Getrennte Duplikate gruppieren

Sind gleiche Zeilen voneinander getrennt, bilden sie unterschiedliche Gruppen:

book
paper
book
paper
article
magazine
article

uniq erzeugt bei dieser Datei ein möglicherweise überraschendes Ergebnis:

$ uniq reading.txt
book
paper
book
paper
article
magazine
article

Keine Zeile wird zusammengefasst, da sich benachbarte Werte unterscheiden. Sortiere zuerst, wenn eine veränderte Reihenfolge zulässig ist und gleiche vollständige Zeilen gruppiert werden sollen:

$ sort reading.txt | uniq
article
book
magazine
paper

Verwende für beide Schritte eine einheitliche Locale und Vergleichsregel. sort -u reading.txt kann ebenfalls in einem Befehl sortieren und je gleichem Sortierschlüssel eine Zeile bewahren.

Gleiche Zeilen sind über reading.txt verteilt und die Ausgabereihenfolge darf sich ändern. Welche Pipeline erzeugt je vollständiger unterschiedlicher Zeile eine sortierte Kopie?

Ohne benannte Eingabedatei liest uniq von stdin und passt daher gut hinter sort. GNU-Optionen wie -i können Groß- und Kleinschreibung ignorieren; -f, -s und -w können Vergleichsbereiche überspringen oder begrenzen. Verwende sie nur, wenn Gleichheit über einen Teil jeder Zeile definiert werden soll.

Mit diesen Übungen kannst du das Gruppieren, Zählen und Filtern von Duplikaten praktisch trainieren:

  1. Linux uniq Befehl: Duplikate filtern – Kombiniere uniq mit sort, um doppelte Zeilen zu erkennen, zu filtern und zu analysieren.
  2. Linux sort Befehl: Text sortieren – Ordne mit sort Textzeilen als Vorbereitung auf den wirksamen Einsatz von uniq.
  3. Wortanzahl und Sortierung – Nutze wc und sort, um Zeilen, Wörter und Zeichen zu zählen, häufige Muster zu finden und Daten effizient zu sortieren.

Lektion abgeschlossen

Sie haben uniq (Eindeutig) abgeschlossen

Du kannst nun benachbarte Gruppen gleicher Zeilen mit uniq analysieren.

  • Fasse jede benachbarte Duplikatgruppe zu einer Zeile zusammen.

  • Zähle aufeinanderfolgende Vorkommen mit -c.

  • Wähle einmalige Gruppen mit -u aus.

  • Wähle wiederholte Gruppen mit -d oder GNU -D aus.

  • Sortiere zuerst, wenn getrennte Duplikate gruppiert werden müssen.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu Text-Fu