Linux-Befehl uniq
Der Linux-Befehl uniq wird verwendet, um doppelte Zeilen in Textdateien zu prüfen und zu entfernen, und wird normalerweise zusammen mit dem Befehl sort verwendet.
uniq kann Textdateien auf doppelte Zeilen prüfen.
Syntax
uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]
Parameters:
- -c oder --count: Die Anzahl der Wiederholungen jeder Zeile neben dieser Zeile anzeigen.
- -d oder --repeated: Nur doppelte Zeilen anzeigen.
- -f<fields> oder --skip-fields=<fields>: Die angegebenen Felder beim Vergleich ignorieren.
- -s<chars> oder --skip-chars=<chars>: Die angegebenen Zeichen beim Vergleich ignorieren.
- -u oder --unique: Nur Zeilen anzeigen, die einmal vorkommen.
- -w<chars> oder --check-chars=<chars>: Gibt die zu vergleichenden Zeichen an.
- --help: Hilfe anzeigen.
- --version: Versionsinformationen anzeigen.
- [Eingabedatei]: Gibt die sortierte Textdatei an. Wenn nicht angegeben, werden Daten aus der Standardeingabe gelesen;
- [Ausgabedatei]: Gibt die Ausgabedatei an. Wenn nicht angegeben, wird der Inhalt auf dem Standardausgabegerät (Anzeigeterminal) ausgegeben.
Beispiele
In der Datei testfile sind die Zeilen 2, 3, 5, 6, 7 und 9 identisch. Um doppelte Zeilen mit dem Befehl uniq zu löschen, verwenden Sie den folgenden Befehl:
uniq testfile
Der ursprüngliche Inhalt von testfile ist:
$ cat testfile #原有内容 test 30 test 30 test 30 Hello 95 Hello 95 Hello 95 Hello 95 Linux 85 Linux 85
Nach Verwendung des Befehls uniq zum Löschen doppelter Zeilen lautet die Ausgabe wie folgt:
$ uniq testfile #删除重复行后的内容 test 30 Hello 95 Linux 85
Prüfen Sie die Datei, löschen Sie doppelte Zeilen und zeigen Sie die Anzahl des Vorkommens jeder Zeile am Zeilenanfang an. Verwenden Sie den folgenden Befehl:
uniq -c testfile
Das Ausgabeergebnis ist wie folgt:
$ uniq -c testfile #删除重复行后的内容 3 test 30 #前面的数字的意义为该行共出现了3次 4 Hello 95 #前面的数字的意义为该行共出现了4次 2 Linux 85 #前面的数字的意义为该行共出现了2次Wenn doppelte Zeilen nicht benachbart sind, funktioniert der Befehl uniq nicht. Das heißt, wenn der Dateiinhalt wie folgt aussieht, wird der Befehl uniq nicht wirksam:
$ cat testfile1 # 原有内容 test 30 Hello 95 Linux 85 test 30 Hello 95 Linux 85 test 30 Hello 95 Linux 85
In diesem Fall können wir sort verwenden:
$ sort testfile1 | uniq Hello 95 Linux 85 test 30
Zählen Sie, wie oft jede Zeile in der Datei vorkommt:
$ sort testfile1 | uniq -c 3 Hello 95 3 Linux 85 3 test 30
Doppelte Zeilen in der Datei finden:
$ sort testfile1 | uniq -d Hello 95 Linux 85 test 30Andere Erweiterungen
Vollständige Linux-Befehle