Website-Suche

uniq-Befehl - Entfernen Sie doppelte Zeilen aus einer Linux-Datei


Als Linux-Benutzer interagieren wir regelmäßig mit verschiedenen Arten von Dateien. Einer der gebräuchlichsten Dateitypen auf jedem Computersystem ist eine Nur-Text-Datei. Oft ist es eine sehr häufige Anforderung, den erforderlichen Text in diesen Dateien zu finden.

Diese einfache Aufgabe wird jedoch schnell nervig, wenn die Datei doppelte Einträge enthält. In solchen Fällen können wir den Befehl uniq verwenden, um doppelten Text effizient zu filtern.

Unter Linux können wir den Befehl uniq verwenden, der sich als nützlich erweist, wenn wir doppelte Zeilen, die nebeneinander vorhanden sind, auflisten oder entfernen möchten.

Abgesehen davon können wir auch den Befehl uniq verwenden, um doppelte Einträge zu zählen. Es ist wichtig zu beachten, dass der Befehl uniq nur funktioniert, wenn doppelte Einträge nebeneinander liegen.

In dieser einfachen Anleitung werden wir den Befehl uniq anhand von praktischen Beispielen unter Linux ausführlich besprechen.

Syntax des Befehls uniq

Die Syntax des Befehls uniq ist sehr einfach zu verstehen und ähnelt anderen Linux-Befehlen:

$ uniq [OPTIONS] [INPUT] [OUTPUT]

Es ist wichtig zu beachten, dass alle Optionen und Parameter des uniq-Befehls optional sind.

Erstellen einer Beispieltextdatei

Um zu beginnen, erstellen wir zunächst eine einfache Textdatei mit einem vi-Editor und fügen die folgenden doppelten Inhalte hinzu, die sich in den angrenzenden Zeilen befinden.

$ vi linux-distributions.txt
cat linux-distributions.txt

Lassen Sie uns nun diese Datei verwenden, um die Verwendung des Befehls uniq zu verstehen.

1. Entfernen Sie doppelte Zeilen aus einer Textdatei

Eine der häufigsten Verwendungen des Befehls uniq besteht darin, die angrenzenden doppelten Zeilen aus der Textdatei zu entfernen, wie gezeigt.

$ uniq linux-distributions.txt

In der obigen Ausgabe können wir sehen, dass der Befehl uniq die duplizierten Zeilen erfolgreich entfernt hat.

2. Zählen Sie doppelte Zeilen in einer Textdatei

Im vorherigen Beispiel haben wir gesehen, wie doppelte Zeilen entfernt werden. Manchmal möchten wir jedoch auch wissen, wie oft die doppelte Zeile angezeigt wird.

Wir können dies mit der Option -c erreichen, wie im folgenden Beispiel gezeigt:

$ uniq -c linux-distributions.txt

In der obigen Ausgabe stellt die erste Spalte dar, wie oft die Zeile wiederholt wird.

3. Entfernen Sie Duplikate ohne Berücksichtigung der Groß- und Kleinschreibung

Standardmäßig wird beim Befehl uniq zwischen Groß- und Kleinschreibung unterschieden. Wir können dieses Standardverhalten jedoch deaktivieren, indem wir die Option -i verwenden, wie gezeigt.

$ uniq -i linux-distributions.txt

In diesem Beispiel können wir beobachten, dass die Zeichenkette Ubuntu und UBUNTU jetzt gleich behandelt wird. Dasselbe geschieht mit den Zeichenfolgen CentOS und CENTOS.

4. Drucken Sie nur doppelte Zeilen aus einer Datei

Manchmal möchten wir nur die doppelten Zeilen aus einer Textdatei drucken, in diesem Fall können Sie die Option -d wie gezeigt verwenden.

$ uniq -d linux-distributions.txt

In der obigen Ausgabe können wir sehen, dass der Befehl uniq den doppelten Eintrag aus jeder Gruppe anzeigt.

5. Drucken Sie alle doppelten Zeilen aus einer Datei

Im vorherigen Beispiel haben wir gesehen, wie eine doppelte Zeile aus jeder Gruppe angezeigt wird. Auf ähnliche Weise können wir auch alle doppelten Zeilen mit der Option -D anzeigen:

$ uniq -D linux-distributions.txt

Die obige Ausgabe zeigt den Text UBUNTU, CENTOS und Alpine nicht an, da es sich um Uniq-Zeilen handelt.

6. Doppelte Zeilen nach Gruppen in einer neuen Zeile anzeigen

Im vorherigen Beispiel haben wir alle doppelten Zeilen gedruckt. Wir können jedoch die gleiche Ausgabe besser lesbar machen, indem wir jede Gruppe durch eine neue Zeile trennen.

Lassen Sie uns die Option --all-repeated=separate verwenden, um dasselbe zu erreichen:

$ uniq --all-repeated=separate linux-distributions.txt

In der obigen Ausgabe können wir sehen, dass jede wiederholte Gruppe durch ein neues Zeilentrennzeichen getrennt ist.

7. Drucken Sie nur eindeutige Zeilen aus einer Datei

In den vorherigen Beispielen haben wir gesehen, wie man doppelte Zeilen druckt. In ähnlicher Weise können wir den Befehl uniq auch anweisen, nur nicht doppelte Zeilen zu drucken.

Lassen Sie uns nun die Option -u verwenden, um nur eindeutige Zeilen zu drucken:

$ uniq -u linux-distributions.txt

Hier können wir sehen, dass der Befehl uniq die Zeilen anzeigt, die nicht dupliziert werden.

8. Entfernen Sie nicht benachbarte doppelte Zeilen in der Datei

Eine der trivialen Einschränkungen des Befehls uniq besteht darin, dass er nur benachbarte doppelte Einträge entfernt. Manchmal möchten wir jedoch die doppelten Einträge unabhängig von ihrer Reihenfolge in der angegebenen Datei entfernen.

In solchen Fällen können wir zuerst den Dateiinhalt sortieren und diese Ausgabe dann wie gezeigt an den uniq-Befehl weiterleiten.

$ sort linux-distributions.txt | uniq

In diesem Beispiel haben wir die Befehle sort und uniq ohne Optionen verwendet. Wir können jedoch auch andere unterstützte Optionen mit diesen Befehlen kombinieren.

Schlussfolgerung

In dieser Anleitung haben wir den Befehl uniq anhand praktischer Beispiele gelernt. Kennen Sie ein anderes bestes Beispiel für den uniq-Befehl unter Linux? Teilen Sie uns Ihre Meinung in den Kommentaren unten mit.

Verwandte Artikel: