ubuntuusers.de

uniq

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Hinweis:

Dieser Artikel beschreibt die alte Implementation des Programms. Ab Ubuntu 24.04 ist auch mit Paket rust-coreutils 🇬🇧 eine neue Implementierung in der Programmiersprache Rust für Ubuntu verfügbar, und ab Ubuntu Version 25.10 wird die Implementierung in Rust als Standard bevorzugt.

Die Implementierung in Rust strebt Funktionsgleichheit mit der alten Implementierung an. Es können aber kleine Abweichungen auftreten. Dies bedeutet, dass das hier Beschriebene von der am eigenen Rechner vorgefundenen Situation abweichen kann.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png Der Befehl uniq gibt sortierte Dateien ohne doppelte Zeilen aus. uniq wird häufig in Verbindung mit sort verwendet.

Installation

 

  • Bis Ubuntu 25.04 ist das Programm im essentiellen Paket coreutils enthalten und deshalb auf jedem System installiert. Diese Variante beruht auf den altbekannten GNU Core Utilities.

  • Ab 25.10 ist das Paket coreutils 🇬🇧 jedoch ein Metapaket, welches alternativ durch gnu-coreutils 🇬🇧 oder rust-coreutils 🇬🇧 oder weitere befriedigt werden kann.

  • Bei 25.10 und 26.04 installiert das Paket coreutils-from-uutils 🇬🇧 beide vorstehend genannten Pakete und aktiviert die rust-coreutils als Vorgabe. Siehe Artikel rust-coreutils zur Umstellung auf die GNU-Utilities.

  • Ab 26.10 soll aber coreutils-from-uutils nur noch die rust-coreutils installieren. Wer dann die alten gnu-coreutils verwenden will, muss coreutils-from-gnu 🇬🇧 manuell installieren.

Aufruf

Die allgemeine Syntax lautet [1]:

uniq OPTION DATEI 

uniq kennt folgende Optionen:

Optionen von uniq
Option Beschreibung
-c oder --count Ausgabe der Zeilen mit vorangestellter Nummer des Vorkommens der entsprechenden Zeilen
-d oder --repeated Nur Ausgabe doppelter Zeilen
-f oder --skip-fields=N Ignoriere die ersten N Felder beim Zeilenvergleich
--help Hilfe
-i oder --ignore-case Ignoriere Groß- und Kleinschreibung
-s oder --skip-chars=N Ignoriere die ersten N Zeichen beim Zeilenvergleich
-u oder --unique Nur Ausgabe nicht mehrfach vorkommender Zeilen
-w oder --check-chars=N Überprüfe nur die ersten N Zeichen pro Zeile

Weitere Optionen sind der Manpage zu entnehmen.

Hinweis:

uniq entdeckt doppelte Zeilen nur, wenn sie direkt aufeinander folgen. Dateien oder sonstige Eingaben müssen also vor der Verwendung sortiert werden.

Beispiele

In den folgenden Beispielen wird die Datei datei.txt verwendet:

cat datei.txt 
Albert
Hans
Franz
Frieda
Berta
Albert
Otto
Albert
Frieda

Verknüpfung mit sort

Um eine Datei erst zu sortieren und dann mit uniq die doppelten Zeilen zu löschen, empfiehlt sich die durch eine Pipe verknüpfte Verwendung von sort und uniq.

sort datei.txt | uniq 
Albert
Berta
Franz
Frieda
Hans
Otto

Nur mehrfach vorhandene Zeilen anzeigen

sort datei.txt | uniq -d 
Albert
Frieda

Nur singulär vorhandene Zeilen anzeigen

sort datei.txt | uniq -u 
Berta
Franz
Hans
Otto

Häufigkeit des Vorkommens von Zeilen anzeigen

sort datei.txt | uniq -c 
3 Albert
1 Berta
1 Franz
2 Frieda
1 Hans
1 Otto

Dateien verknüpfen und Doppel entfernen

Im folgenden Beispiel werden drei Dateien verknüft und sortiert. Anschließend werden die Doppel entfernt und wird das Ergebnis in die neue Datei datei.txt geschrieben.

cat datei1 datei2 datei3 | sort | uniq > datei.txt 

Felder ignorieren

Im folgenden Befehl werden die ersten drei Felder bei der Anwendung von uniq auf die Datei log ignoriert. Das kann bspw. sinnvoll sein, wenn in Log-Dateien der Zeitstempel ignoriert werden soll.

sort log | uniq -f 3 

Diese Revision wurde am 6. Oktober 2026 20:12 von Ruth-Wies erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell