GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Das Uniq Command Tutorial mit Beispielen für Anfänger

Wenn Sie hauptsächlich auf der Kommandozeile arbeiten und täglich mit vielen Textdateien zu tun haben, sollten Sie sich mit Uniq vertraut machen Befehl.

Der Uniq-Befehl hilft Ihnen, wiederholte und doppelte Zeilen in einer Datei leicht zu finden. Uniq dient nicht nur zum Auffinden von Duplikaten, sondern auch zum Entfernen der Duplikate, zum Anzeigen der Anzahl der doppelten Zeilen, zum Anzeigen nur der wiederholten Zeilen und zum Anzeigen nur der eindeutigen Zeilen usw.

Bitte beachten Sie, dass der Befehl 'uniq' keine wiederholten Zeilen erkennt, es sei denn, sie sind benachbart. Daher müssen Sie sie möglicherweise zuerst sortieren oder den sort-Befehl mit uniq kombinieren, um die Ergebnisse zu erhalten. Lassen Sie mich Ihnen einige Beispiele zeigen.

Da der uniq-Befehl Teil des GNU-Coreutils-Pakets ist, ist er in den meisten Linux-Distributionen vorinstalliert. Lassen Sie uns also nicht die Installation stören und sehen Sie sich einige praktische Beispiele für Uniq-Befehle an.

Uniq-Befehlsbeispiele

Lassen Sie uns zunächst eine Datei mit einigen doppelten Zeilen erstellen.

$ vi ostechnix.txt
welcome to ostechnix
welcome to ostechnix
Linus is the creator of Linux.
Linux is secure by default
Linus is the creator of Linux.
Top 500 super computers are powered by Linux

Wie Sie in der obigen Datei sehen, haben wir wenige Zeilenwiederholungen (die erste, zweite, dritte und fünfte Zeile sind Duplikate).

1. Entfernen Sie aufeinanderfolgende doppelte Zeilen in einer Datei mit dem Uniq-Befehl

Wenn Sie den Befehl 'uniq' ohne Argumente verwenden, werden alle aufeinanderfolgenden doppelten Zeilen entfernt und nur die eindeutigen Zeilen angezeigt.

$ uniq ostechnix.txt

Beispielausgabe:

Wie Sie sehen können, hat der Befehl uniq alle aufeinanderfolgenden doppelten Zeilen in der angegebenen Datei entfernt. Sie haben vielleicht auch bemerkt, dass die obige Ausgabe immer noch die Duplikate in der zweiten und vierten Zeile enthält. Dies liegt daran, dass der uniq-Befehl die wiederholten Zeilen nur weglässt, wenn sie benachbart sind. Natürlich können wir auch diese nicht aufeinander folgenden Duplikate entfernen. Sehen Sie sich das zweite Beispiel unten an.

2. Entfernen Sie alle doppelten Zeilen

$ sort ostechnix.txt | uniq

Beispielausgabe:

Sehen? Es gibt keine Duplikate oder wiederholte Zeilen. Mit anderen Worten, der obige Befehl zeigt jede Zeile einmal aus der Datei ostechnix.txt an .

Im obigen Beispiel haben wir den sort-Befehl in Verbindung mit uniq verwendet, weil, wie ich bereits erwähnt habe, uniq die doppelten/wiederholten Zeilen nur dann findet, wenn sie benachbart sind.

3. Nur eindeutige Zeilen aus einer Datei anzeigen

Um nur die eindeutigen Zeilen einer Datei anzuzeigen, lautet der Befehl:

$ sort ostechnix.txt | uniq -u

Beispielausgabe:

Linux is secure by default
Top 500 super computers are powered by Linux

Wie Sie sehen können, haben wir nur zwei eindeutige Zeilen in der angegebenen Datei.

4. Nur doppelte Zeilen anzeigen

Ebenso können wir auch doppelte Zeilen aus einer Datei wie unten anzeigen.

$ sort ostechnix.txt | uniq -d

Beispielausgabe:

Linus is the creator of Linux.
welcome to ostechnix

Diese beiden sind die wiederholten/duplizierten Zeilen in der Datei ostechnix.txt. Bitte beachten Sie, dass -d (Kleinbuchstabe d) wird nur doppelte Zeilen drucken , eine für jede Gruppe . Um alle doppelten Zeilen zu drucken , verwenden Sie -D (Großbuchstabe d) wie unten.

$ sort ostechnix.txt | uniq -D

Sehen Sie den Unterschied zwischen beiden Flags im folgenden Screenshot.

5. Zeigt die Anzahl der Vorkommen jeder Zeile in einer Datei an

Aus irgendeinem Grund möchten Sie vielleicht überprüfen, wie oft eine Zeile in der angegebenen Datei wiederholt wird. Verwenden Sie dazu -c kennzeichnen wie unten.

$ sort ostechnix.txt | uniq -c

Beispielausgabe:

 2 Linus is the creator of Linux.
 1 Linux is secure by default
 1 Top 500 super computers are powered by Linux
 2 welcome to ostechnix

Wir können auch die Anzahl der Vorkommen jeder Zeile zusammen mit dieser Zeile anzeigen, sortiert nach den häufigsten mit dem Befehl:

$ sort ostechnix.txt | uniq -c | sort -nr

Beispielausgabe:

 2 welcome to ostechnix
 2 Linus is the creator of Linux.
 1 Top 500 super computers are powered by Linux
 1 Linux is secure by default

6. Beschränken Sie den Vergleich auf 'N' Zeichen

Mit dem Uniq-Befehl können wir den Vergleich auf eine bestimmte Anzahl von Zeichen von Zeilen in einer Datei mit -w beschränken Flagge. Lassen Sie uns beispielsweise den Vergleich auf die ersten 4 Zeichen der Zeilen in einer Datei beschränken und die wiederholten Zeilen wie unten gezeigt anzeigen.

$ uniq -d -w 4 ostechnix.txt

7. Vermeiden Sie den Vergleich mit den ersten 'N'-Zeichen

Wie den Vergleich auf N Zeichen von Zeilen in einer Datei zu beschränken, können wir auch vermeiden, die ersten N Zeichen mit -s zu vergleichen Flagge.

Der folgende Befehl vermeidet den Vergleich mit den ersten 4 Zeichen der Zeilen in einer Datei:

$ uniq -d -s 4 ostechnix.txt

Um zu vermeiden, dass die ersten N Felder anstelle von Zeichen verglichen werden, verwenden Sie das Flag '-f' im obigen Befehl.

Weitere Einzelheiten finden Sie im Hilfebereich;

$ uniq --help

und Handbuchseiten.

$ man uniq

Lesen Sie auch:

  • Das Fold-Befehls-Tutorial mit Beispielen für Anfänger

Linux
  1. Linux expand Command Tutorial für Anfänger (mit Beispielen)

  2. Linux-Factor-Befehls-Tutorial für Anfänger (mit Beispielen)

  3. Linux yes Command Tutorial für Anfänger (mit Beispielen)

  4. Das Type Command Tutorial mit Beispielen für Anfänger

  5. Das Shuf-Befehls-Tutorial mit Beispielen für Anfänger

Das Faltbefehls-Tutorial mit Beispielen für Anfänger

Das df-Befehls-Tutorial mit Beispielen für Anfänger

Das Top Command Tutorial mit Beispielen für Anfänger

Das mktemp-Befehls-Tutorial mit Beispielen für Anfänger

Das Grep-Befehls-Tutorial mit Beispielen für Anfänger

Das fc Command Tutorial mit Beispielen für Anfänger