[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal:Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 32, align=left)]] Der Befehl '''uniq''' gibt sortierte Dateien ohne doppelte Zeilen aus. uniq wird häufig in Verbindung mit [:sort:] verwendet. = Installation = Das Programm ist im Paket {{{#!vorlage Paketinstallation coreutils }}} von Ubuntu enthalten und deshalb auf jedem System vorinstalliert. = Aufruf = Die allgemeine Syntax lautet [1]: {{{#!vorlage Befehl uniq OPTION DATEI }}} `uniq` kennt folgende Optionen: {{{#!vorlage Tabelle < tableclass="zebra_start3" rowclass="titel"-2 :> 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 [:man:Manpage] zu entnehmen. {{{#!vorlage 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: {{{#!vorlage Befehl 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 [:Shell/Umleitungen#Der-Pipe-Operator:Pipe] verknüpfte Verwendung von `sort` und `uniq`. {{{#!vorlage Befehl sort datei.txt | uniq }}} {{{ Albert Berta Franz Frieda Hans Otto }}} == Nur mehrfach vorhandene Zeilen anzeigen == {{{#!vorlage Befehl sort datei.txt | uniq -d }}} {{{ Albert Frieda }}} == Nur singulär vorhandene Zeilen anzeigen == {{{#!vorlage Befehl sort datei.txt | uniq -u }}} {{{ Berta Franz Hans Otto }}} == Häufigkeit des Vorkommens von Zeilen anzeigen == {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl sort log | uniq -f 3 }}} = Links = * [http://www.gnu.org/software/coreutils/ GNU Core Utilities] {en} * [wikipedia_en:Uniq:uniq] * [:Shell/Befehlsübersicht:] {Übersicht} Übersicht über verschiedene Shellbefehle # tag: Shell