Der uniq-Befehl ist äußerst nützlich, wenn es darum geht, doppelte Zeilen aus Textdateien oder Ausgaben zu entfernen. Er arbeitet aufeinanderfolgende Zeilen ab und gibt nur eine Instanz jeder eindeutigen Zeile aus.

    Syntax

    uniq [Optionen] [Eingabe] [Ausgabe]

    Einige Beispiele für häufig verwendete Optionen sind:

    • -c oder --count: Zählt die Anzahl der Vorkommen jeder Zeile und fügt sie vor jeder Zeile ein.
    • -d oder --repeated: Zeigt nur Zeilen an, die sich wiederholen.
    • -i oder --ignore-case: Ignoriert die Groß-/Kleinschreibung bei der Überprüfung auf Duplikate.
    • -u oder --unique: Zeigt nur eindeutige Zeilen an (ohne Duplikate).
    • -f N oder --skip-fields=N: Ignoriert die ersten N Felder einer Zeile beim Vergleich auf Duplikate.

    Beispiele

    Für die folgenden Beispiele generieren wir eine Datei mit dem Namen datei_mit_dopplungen.txt und folgendem Inhalt:

    Linux
    Linux
    Ubuntu
    Fedora
    Fedora
    Fedora
    Ubuntu

    Entfernen von doppelten Zeilen in einer Datei

    Wir können den uniq-Befehl verwenden, um die doppelten Zeilen zu entfernen, allerdings müssen die Dopplungen aufeinander folgen:

    $ uniq datei_mit_dopplungen.txt
    Linux
    Ubuntu
    Fedora
    Ubuntu
    $ 

    Anzeigen der Anzahl der Vorkommen jeder Zeile

    Wenn wir die Anzahl der Vorkommen jeder Zeile anzeigen möchten, können wir die Option -c verwenden:

    $ uniq -c datei_mit_dopplungen.txt
       2 Linux
       1 Ubuntu
       3 Fedora
       1 Ubuntu
    $ 

    Verwendung von uniq mit sort zur Entfernung von Duplikaten in sortierten Daten

    Der uniq-Befehl wird oft in Verbindung mit dem Befehl sort verwenden, um die Datei vor der Verwendung von uniq zu sortieren:

    $ sort datei_mit_dopplungen.txt | uniq
    Fedora
    Linux
    Ubuntu
    $ 

    Links