Linux-Befehle

Linux uniq-Befehl

Linux uniq-Befehl
Was ist "einzigartig"? Es ist ein großartiges Befehlszeilentool, das doppelten Text in der angegebenen Eingabe meldet oder weglässt. Es ist ein Teil der GNU-Coreutils und somit auf jedem einzelnen UNIX/Linux-System verfügbar. Beginnen wir mit „uniq“!

Uniq-Nutzung

So sieht die Grundstruktur von „uniq“-Befehlen aus.

einzigartig

Sehen wir uns zum Beispiel den Inhalt von „Duplikat“ an.TXT". Natürlich enthält es für die Zwecke dieses Artikels viele doppelte Textinhalte.

Katze duplizieren.txt | Sortieren

Es gibt eindeutig doppelte Inhalte, richtig? Lassen Sie uns sie durch "uniq" filtern.

Katzenduplikat | sortieren | einzigartig

Die Ausgabe sieht nur mit den eindeutigen Werten so besser aus, richtig?

Sie müssen jedoch nicht die Verrohrungsmethode verwenden, um die Arbeit zu erledigen. „uniq“ kann auch direkt an den Dateien arbeiten.

einzigartig

Duplicate Content löschen

Ja, das Löschen des doppelten Inhalts aus der Eingabe und das Beibehalten des ersten Vorkommens ist das Standardverhalten von „uniq“. Beachten Sie, dass diese doppelte Löschung nur erfolgt, wenn „uniq“ gleichzeitig doppelte Elemente findet.

Schauen wir uns dieses Beispiel an. Ich habe ein weiteres "duplicate1" erstellt.txt“-Datei, die doppelte Elemente enthält. Sie grenzen jedoch nicht aneinander.

Fledermausduplikat1.TXT

Filtern Sie nun diese Ausgabe mit „uniq“.

Katze Duplikat1.txt | einzigartig

Alle doppelten Inhalte sind da! Wenn Sie also mit etwas Ähnlichem arbeiten, leiten Sie den Inhalt durch "Sortieren", um sicherzustellen, dass alle Inhalte sortiert sind und Duplikate nebeneinander liegen.

Katze Duplikat1.txt | Sortieren

Jetzt wird „uniq“ seine Arbeit normal erledigen.

Katze Duplikat1.txt | sortieren | einzigartig

Anzahl der Wiederholungen

Wenn Sie möchten, können Sie im Inhalt überprüfen, wie oft eine Zeile wiederholt wird. Verwenden Sie einfach das Flag "-c" mit "uniq".

Katze duplizieren.txt | sortieren | uniq -c

Hinweis: „uniq“ erledigt auch seine reguläre Aufgabe, die doppelten zu löschen.

Doppelte Zeilen drucken

Meistens wollen wir die Duplikate loswerden, richtig? Wie wäre es dieses Mal damit, einfach zu überprüfen, was doppelt vorhanden ist??

Ja, „uniq“ kann das auch. In diesem Fall müssen Sie die Option „-D“ verwenden. Ich werde "sortieren" dazwischen verwenden, um ein besseres, verfeinertes Ergebnis zu erzielen.

Katze duplizieren.txt | sortieren | uniq -D

BEEINDRUCKEND! Das sind viele Duplikate! Alle Duplikate sind jedoch gruppiert, was die Navigation erschwert. Wie wäre es mit einer kleinen Lücke dazwischen?

uniq --all-repeated=

Hier stehen 3 verschiedene Methoden zur Verfügung: keine (Standardwert), voranstellen und trennen.

Katze duplizieren.txt | sortieren | uniq --all-repeated=prepend

Katze duplizieren.txt | sortieren | uniq --all-repeated=separate

Jetzt sieht es besser aus.

Eindeutigkeitsprüfung überspringen

In vielen Fällen muss die Eindeutigkeit von einem anderen Teil der Linie überprüft werden.

Lass uns das am Beispiel verstehen. In der Datei doppelt1.txt, sagen wir, dass die Duplizierung durch den zweiten Teil bestimmt wird. Wie sagt man „uniq“, das zu tun?? Im Allgemeinen wird nach dem ersten Feld gesucht (standardmäßig). Das können wir auch machen. Es gibt dieses "-f" Flag, um genau den Job zu erledigen.

uniq -f
Katze Duplikat1.txt | sortieren -k 2 | uniq -f 1

Wenn Sie sich mit dem Flag „sort“ wundern, müssen Sie „sort“ anweisen, nach der zweiten Spalte zu sortieren.

Alle Zeilen anzeigen, aber Duplikate trennen

Nach allen oben genannten Beispielen behält „uniq“ nur das erste Vorkommen des duplizierten Inhalts und entfernt den Rest. Wie wäre es, die doppelten Inhalte vollständig zu entfernen?? Ja, mit dem Flag „-u“ können wir „uniq“ erzwingen, um nur die sich nicht wiederholenden Zeilen beizubehalten.

Katze duplizieren.txt | Sortieren

Katze duplizieren.txt | sortieren | uniq -u

Hmm, zu viele Duplikate sind jetzt weg…

Anfangszeichen überspringen

Wir haben besprochen, wie man „uniq“ anweist, seine Arbeit für andere Felder zu erledigen, richtig? Es ist Zeit, die Prüfung nach einer Reihe von Anfangszeichen zu starten. Zu diesem Zweck weist das Flag „-s“ zusammen mit der Anzahl der Zeichen „uniq“ an, die Aufgabe zu erledigen.

Katze Duplikat1.txt | sortieren -k 2 | uniq -s 2

Es ähnelt dem Beispiel, in dem „uniq“ nur im zweiten Feld seine Aufgabe erfüllen sollte. Sehen wir uns ein weiteres Beispiel mit diesem Trick an.

Katze duplizieren.txt | sortieren | uniq -s 5

Überprüfen Sie NUR die Anfangszeichen

So wie wir „uniq“ angewiesen haben, die ersten paar Zeichen zu überspringen, ist es auch möglich, „uniq“ anzuweisen, den Check nur auf die ersten paar Zeichen zu beschränken. Dafür gibt es ein eigenes „-w“-Flag.

Katze duplizieren.txt | sortieren | uniq -w 5

Dieser Befehl weist „uniq“ an, innerhalb der ersten 5 Zeichen eine Eindeutigkeitsprüfung durchzuführen.

Sehen wir uns ein weiteres Beispiel für diesen Befehl an.

Katze Duplikat1.txt | sortieren | uniq -w 5

Es löscht alle anderen Instanzen von "duplikaten" Einträgen, weil es die Eindeutigkeitsprüfung des "dupli"-Teils durchgeführt hat.

Groß-/Kleinschreibung

Bei der Prüfung auf Eindeutigkeit prüft „uniq“ auch die Groß-/Kleinschreibung der Zeichen. In einigen Situationen spielt die Groß-/Kleinschreibung keine Rolle, daher können wir das Flag „-i“ verwenden, um die Groß-/Kleinschreibung von „uniq“ unabhängig zu machen.

Hier präsentiere ich euch die Demodatei.

Einige wirklich clevere Vervielfältigungen mit einer Mischung aus Groß- und Kleinbuchstaben, richtig? Es ist an der Zeit, die Stärke von „uniq“ zu nutzen, um das Chaos zu beseitigen!

Katze Duplikat1.txt | sortieren | uniq -i

Wunsch erfüllt!

NULL-terminierte Ausgabe

Das Standardverhalten von „uniq“ besteht darin, die Ausgabe mit einem Zeilenumbruch zu beenden. Die Ausgabe kann aber auch mit NULL abgeschlossen werden. Das ist ziemlich nützlich, wenn Sie es in Skripten verwenden möchten. Hier macht das Flag „-z“ den Job.

Katze duplizieren.txt | sortieren | uniq -z

Kombinieren mehrerer Flaggen

Wir haben eine Reihe von Flags von "uniq" gelernt, richtig? Wie wäre es, sie miteinander zu kombinieren?

Ich kombiniere zum Beispiel die Groß-/Kleinschreibung und die Anzahl der Wiederholungen zusammen.

Wenn Sie jemals planen, mehrere Flaggen miteinander zu kombinieren, stellen Sie zunächst sicher, dass sie richtig zusammenarbeiten. Manchmal funktionieren die Dinge einfach nicht so, wie sie sollten.

Abschließende Gedanken

„uniq“ ist ein ziemlich einzigartiges Tool, das Linux bietet. Mit so vielen leistungsstarken Funktionen kann es in vielerlei Hinsicht nützlich sein. Die Liste aller Flaggen und deren Erklärungen finden Sie auf den man- und info-Seiten von „uniq“.

Mann einzigartig

info uniq

Genießen!

OpenTTD-Tutorial
OpenTTD ist eines der beliebtesten Wirtschaftssimulationsspiele auf dem Markt. In diesem Spiel musst du ein wunderbares Transportunternehmen aufbauen....
SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...