Linux-Befehle · 6 min read · Sep 19, 2025
Linux Uniq-Befehl Tutorial für Anfänger (10 Beispiele)
Wenn Sie ein Linux-Befehlszeilenbenutzer sind und Ihre Arbeit das Spielen mit Textdateien umfasst, sollten Sie wissen (falls nicht bereits), dass es viele Befehlszeilen-Dienstprogramme gibt, die Ihnen in verschiedenen Situationen sehr hilfreich sein können. Zum Beispiel gibt es ein Werkzeug mit dem Namen ‘uniq’, das wiederholte Zeilen in einer Datei meldet oder sogar löscht.
In diesem Artikel werden wir ‘uniq’ anhand von leicht verständlichen Beispielen besprechen. Aber bevor wir das tun, ist es erwähnenswert, dass alle in diesem Tutorial genannten Beispiele und Anweisungen auf Ubuntu 16.04LTS getestet wurden.
Linux Uniq-Befehl
Wie bereits zu Beginn erwähnt, meldet der uniq-Befehl oder überspringt wiederholte Zeilen. Hier ist die allgemeine Syntax dieses Befehls:
uniq [OPTION]… [EINGABE [AUSGABE]]
Laut der Man-Seite des Dienstprogramms: “Filtert benachbarte übereinstimmende Zeilen aus der EINGABE (oder Standard-Eingabe) und schreibt in die AUSGABE (oder Standard-Ausgabe). Ohne Optionen werden übereinstimmende Zeilen mit der ersten Vorkommen zusammengeführt.”
Im Folgenden finden Sie einige Beispiele, die Ihnen helfen werden, das Werkzeug besser zu verstehen.
1. Wie man wiederholte Zeilen mit dem uniq-Befehl löscht
Angenommen, die Datei enthält folgende Zeilen:
Klarerweise ist jede Zeile wiederholt. Lassen Sie uns nun uniq auf dieser Datei ausführen und sehen, was passiert.
uniq file1Wie Sie sehen können, enthält die Ausgabe des Befehls keine wiederholten Zeilen. Bitte beachten Sie, dass die Originaldatei - ‘file1’ in unserem Fall - unbeeinflusst bleibt. Sie können die Ausgabe des Werkzeugs in eine andere Datei umleiten, falls Sie sie speichern und daran arbeiten möchten.
2. Wie man die Anzahl der Wiederholungen für jede Zeile anzeigt
Wenn Sie möchten, können Sie auch uniq dazu bringen, die Anzahl der Male anzuzeigen, die eine Zeile wiederholt wird. Dies kann durch die Verwendung der -c Befehlszeilenoption erfolgen. Zum Beispiel der folgende Befehl:
uniq -c file1produziert die folgende Ausgabe:
Wie Sie sehen können, ist die Anzahl der Wiederholungen für jede Zeile in der Ausgabe davor gesetzt.
3. Wie man nur doppelte Zeilen mit uniq druckt
Um uniq dazu zu bringen, nur doppelte Zeilen zu drucken, verwenden Sie die -D Befehlszeilenoption. Angenommen, file1 enthält jetzt eine zusätzliche Zeile am Ende (beachten Sie, dass diese Zeile nicht wiederholt wird).
Jetzt, wenn ich den folgenden Befehl ausführe:
uniq -D file1wird die folgende Ausgabe erzeugt:
Wie Sie sehen können, zeigt die -D-Option uniq alle wiederholten Zeilen in der Ausgabe an, einschließlich aller ihrer Wiederholungen. Um besser zu trennen, können Sie eine leere Zeile nach jeder Gruppe von wiederholten Zeilen haben, was mit der –all-repeated Option erreicht werden kann.
uniq –all-repeated[=METHOD] file1
Diese Option erfordert, dass der Benutzer einen Methodennamen eingibt. Die Werte könnten prepend (um eine leere Zeile voranzustellen) oder separate (um eine leere Zeile anzuhängen) sein. Zum Beispiel, hier ist diese Option in Aktion mit der prepend Methode.

Weiter, wenn Sie möchten, dass das Werkzeug nur eine doppelte Zeile pro Gruppe anzeigt, können Sie die -d Option verwenden. Hier ist ein Beispiel dafür:
Klarerweise wurde nur eine wiederholte Zeile aus jeder Gruppe in der Ausgabe angezeigt.
4. Wie man uniq dazu bringt, den Vergleich der ersten paar Felder zu vermeiden
Manchmal wird die Ähnlichkeit von zwei Zeilen je nach Situation durch einen kleinen Teil dieser Zeilen definiert. Zum Beispiel, betrachten Sie den Inhalt der folgenden Datei:
Jetzt, nehmen wir an, die Zeilen werden basierend auf ihrem zweiten Feld (HTF oder FF) als ähnlich oder unterschiedlich betrachtet, und Sie möchten dies uniq mitteilen, dann kann dies mit der -f Befehlszeilenoption erfolgen.
uniq -f [anzahl-der-zu-überspringenden-felder] [dateiname]Die -f Option erfordert, dass Sie eine Zahl übergeben, die die Anzahl der Felder darstellt, die Sie möchten, dass der Befehl überspringt. Zum Beispiel, in unserem Fall können wir ‘1’ als Argument für -f übergeben, da es nur das erste Feld ist, das wir möchten, dass uniq überspringt.
uniq -f 1 file1Die Ausgabe zeigt deutlich, dass uniq sowohl die erste als auch die dritte Zeile basierend auf ihren jeweiligen zweiten Feldern als wiederholt betrachtet hat.
5. Wie man uniq dazu bringt, alle Zeilen anzuzeigen, während wiederholte Gruppen mit einer leeren Zeile getrennt werden
Falls die Anforderung darin besteht, alle Zeilen anzuzeigen, während wiederholte Gruppen von Zeilen mit einer leeren Zeile getrennt werden, können Sie die –group Option verwenden. Wie die –all-repeated Option, die wir zuvor besprochen haben, erfordert auch –group, dass Sie die Position der leeren Zeile angeben (prepend, append oder both).
Hier ist ein Beispiel:

Beachten Sie, dass die -f Option, die wir bereits im vorherigen Abschnitt besprochen haben.
6. Wie man uniq dazu bringt, nur nicht-wiederholte Zeilen zu drucken
Wie Sie jetzt verstanden haben sollten, zeigt der uniq-Befehl standardmäßig nur wiederholte Zeilen in der Ausgabe an. Aber wenn Sie möchten, können Sie stattdessen nur nicht-wiederholte oder einzigartige Zeilen anzeigen lassen. Dies kann mit der -u Befehlszeilenoption erfolgen.
uniq -u [dateiname]Also, in unserem Fall:
uniq -u file1
Hier ist ein Beispiel:
Beachten Sie, dass die -f Option, die wir bereits in Abschnitt/Punkt Nummer 4 besprochen haben.
7. Wie man uniq dazu bringt, eine festgelegte Anzahl von Anfangszeichen zu überspringen
In einem unserer früheren Beispiele haben wir besprochen, wie Sie uniq dazu bringen können, Felder zu überspringen. Wenn Sie jedoch möchten, können Sie das Werkzeug auch dazu zwingen, eine festgelegte Anzahl von Anfangszeichen zu überspringen. Diese Funktion kann mit der -s Befehlszeilenoption aufgerufen werden.
uniq -s [anzahl-der-zeichen] dateiname
Zum Beispiel, nehmen wir an, die Datei enthält folgende Zeilen:
Jetzt, wenn Sie möchten, dass uniq die ersten 4 Zeichen in jeder Zeile vor dem Vergleichen überspringt, kann dies auf folgende Weise erfolgen:
uniq -s 4 file1
Hier ist der oben genannte Befehl in Aktion:
Wie Sie sehen können, wurde die vierte Zeile (faq_forge), die ursprünglich vorhanden war, in der Ausgabe übersprungen. Dies liegt daran, dass nach dem Überspringen der ersten vier Zeichen die dritte und die vierte Zeile gleich waren und daher von uniq als wiederholt betrachtet wurden.
8. Wie man den Vergleich auf eine festgelegte Anzahl von Zeichen beschränkt
Ähnlich wie beim Überspringen von Zeichen können Sie uniq auch anweisen, den Vergleich auf eine festgelegte Anzahl von Zeichen zu beschränken. Dazu müssen Sie die -w Befehlszeilenoption verwenden.
uniq -w [anzahl-der-zeichen] [dateiname]
Zum Beispiel, nehmen wir an, die Datei enthält folgende Zeilen:
Jetzt, wenn die Anforderung darin besteht, den Vergleich auf die ersten 3 Zeichen zu beschränken, kann dies auf folgende Weise erfolgen:
uniq -w 3 file1
Hier ist der oben genannte Befehl in Aktion:
Da die ersten 3 Zeichen der dritten und vierten Zeile gleich sind, wurden diese Zeilen als wiederholt betrachtet. Daher wird nur die dritte in der Ausgabe angezeigt.
9. Wie man uniq den Vergleich nicht-sensitiv gegenüber Groß- und Kleinschreibung macht
Standardmäßig ist der Vergleich, den uniq durchführt, groß- und kleinschreibungssensitiv. Sie können den Prozess jedoch groß- und kleinschreibungssensitiv machen, indem Sie die -i Befehlszeilenoption verwenden.
Zum Beispiel, betrachten Sie denselben Fall, den wir im vorherigen Abschnitt besprochen haben, nur dass die vierte Zeile mit einem großen H, O und W beginnt.
Jetzt, wenn Sie versuchen, denselben Befehl auszuführen, den wir im vorherigen Abschnitt verwendet haben, werden Sie sehen, dass die Ausgabe anders ist:
Das liegt daran, dass die ersten drei Zeichen der dritten und vierten Zeile für uniq aufgrund ihrer Groß- und Kleinschreibung unterschiedlich sind. In solchen Situationen können Sie den Vergleich groß- und kleinschreibungssensitiv machen, indem Sie die -i Befehlszeilenoption verwenden.
10. Wie man uniq eine NUL-terminierte Ausgabe erzeugen lässt
Standardmäßig ist die Ausgabe, die uniq erzeugt, zeilenweise terminiert. Wenn Sie jedoch möchten, können Sie stattdessen eine NUL-terminierte Ausgabe erhalten (nützlich beim Umgang mit uniq in Skripten). Dies kann mit der -z Befehlszeilenoption erreicht werden.
uniq -z [dateiname]
Fazit
Wir haben fast alle Befehlszeilenoptionen abgedeckt, die der uniq-Befehl bietet, also üben Sie einfach alles, was wir hier besprochen haben, und Sie sollten eine solide Vorstellung davon bekommen, wie uniq funktioniert und welche Funktionen es bietet. Wie immer, bei Fragen oder Zweifeln, schauen Sie sich zuerst die Man-Seite des Befehls an.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.