Linux-Befehl uniq

Linux 命令大全Vollständige Linux-Befehle

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 30  

Linux 命令大全Vollständige Linux-Befehle

Andere Erweiterungen