English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Commande uniq de Linux

Linux 命令大全

La commande uniq de Linux est utilisée pour vérifier et supprimer les lignes et colonnes répétées dans le fichier texte, généralement utilisée avec la commande sort.

uniq peut vérifier les lignes et colonnes répétées dans le fichier texte.

Syntaxe

uniq [-cdu][-f<colonnes>][-s<position des caractères>][-w<position des caractères>][--help][--version][Entrée du fichier][Sortie du fichier]

Paramètres

  • -c ou--count Affichez le nombre de répétitions de chaque ligne à côté de la colonne.

  • -d ou--repeated Affichez uniquement les lignes et colonnes apparaissant en répétition.

  • -f<colonnes> ou--skip-fields=<colonnes> Ignorez les colonnes spécifiées pour la comparaison.

  • -s<position des caractères> ou--skip-chars=<position des caractères> Ignorez les caractères spécifiés pour la comparaison.

  • -u ou--unique Affichez uniquement les lignes et colonnes apparaissant une seule fois.

  • -w<position des caractères> ou--check-chars=<position des caractères> Spécifiez les caractères à comparer.

  • --help Affichez l'aide.

  • --version Affichez les informations de version.

  • [Entrée du fichier] Spécifiez le fichier texte trié. Si ce paramètre n'est pas spécifié, les données sont lues à partir de l'entrée standard;

  • [输出文件]   指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

在线示例

文件testfile中第 2、3、5、6、7、9行为相同的行,使用 uniq 命令删除重复的行,可使用以下命令:

uniq testfile

testfile中的原有内容为:

$ cat testfile      #原有内容  
test 30  
test 30  
test 30  
Hello 95  
Hello 95  
Hello 95  
Hello 95  
Linux 85  
Linux 85

使用uniq 命令删除重复的行后,有如下输出结果:

$ uniq testfile     #删除重复行后的内容  
test 30  
Hello 95  
Linux 85

检查文件并删除文件中重复出现的行,并在行首显示该行重复出现的次数。使用如下命令:

uniq -c testfile

结果输出如下:

$ uniq -c testfile      #删除重复行后的内容  
3 test 30             #前面的数字的意义为该行共出现了3次  
4 Hello 95            #前面的数字的意义为该行共出现了4次  
2 Linux 85            #前面的数字的意义为该行共出现了2次

当重复的行并不相邻时,uniq 命令是不起作用的,即若文件内容为以下时,uniq 命令不起作用:

$ cat testfile1      # 原有内容 
test 30  
Hello 95  
Linux 85 
test 30  
Hello 95  
Linux 85 
test 30  
Hello 95  
Linux 85

这时我们就可以使用 sort:

$ sort  testfile1 | uniq
Hello 95  
Linux 85 
test 30

统计各行在文件中出现的次数:

$ sort testfile1 | uniq -c
   3 Hello 95  
   3 Linux 85 
   3 test 30

在文件中找出重复的行:

$ sort testfile1 | uniq -d
Hello 95  
Linux 85 
test 30

Linux 命令大全