Commande Linux uniq

Linux 命令大全Commandes Linux complètes

La commande uniq de Linux sert à vérifier et à supprimer les lignes en double dans les fichiers texte, et est généralement utilisée avec la commande sort.

uniq peut vérifier les lignes en double dans les fichiers texte.

Syntaxe

uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]

Parameters:

  • -c ou --count : Afficher le nombre de fois que chaque ligne se répète à côté de cette ligne.
  • -d ou --repeated : Afficher uniquement les lignes en double.
  • -f<fields> ou --skip-fields=<fields> : Ignorer les champs spécifiés lors de la comparaison.
  • -s<chars> ou --skip-chars=<chars> : Ignorer les caractères spécifiés lors de la comparaison.
  • -u ou --unique : Afficher uniquement les lignes qui apparaissent une fois.
  • -w<chars> ou --check-chars=<chars> : Spécifiez les caractères à comparer.
  • --help : Afficher l'aide.
  • --version : Afficher les informations de version.
  • [fichier d'entrée] : Spécifiez le fichier texte trié. S'il n'est pas spécifié, lisez les données depuis l'entrée standard ;
  • [fichier de sortie] : Spécifiez le fichier de sortie. S'il n'est pas spécifié, affichez le contenu sur le périphérique de sortie standard (terminal d'affichage).

Exemples

Dans le fichier testfile, les lignes 2, 3, 5, 6, 7 et 9 sont identiques. Pour supprimer les lignes en double à l'aide de la commande uniq, utilisez la commande suivante :

uniq testfile 

Le contenu original de testfile est :

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

Après avoir utilisé la commande uniq pour supprimer les lignes en double, la sortie est la suivante :

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

Vérifiez le fichier, supprimez les lignes en double et affichez le nombre d'occurrences de chaque ligne au début de la ligne. Utilisez la commande suivante :

uniq -c testfile 

Le résultat de sortie est le suivant :

$ uniq -c testfile      #删除重复行后的内容  
3 test 30             #前面的数字的意义为该行共出现了3次  
4 Hello 95            #前面的数字的意义为该行共出现了4次  
2 Linux 85            #前面的数字的意义为该行共出现了2次 
Lorsque les lignes en double ne sont pas adjacentes, la commande uniq ne fonctionne pas. C'est-à-dire que si le contenu du fichier est le suivant, la commande uniq ne prendra pas effet :
$ cat testfile1      # 原有内容 
test 30  
Hello 95  
Linux 85 
test 30  
Hello 95  
Linux 85 
test 30  
Hello 95  
Linux 85 

Dans ce cas, nous pouvons utiliser sort :

$ sort  testfile1 | uniq
Hello 95  
Linux 85 
test 30

Comptez le nombre de fois que chaque ligne apparaît dans le fichier :

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

Trouvez les lignes en double dans le fichier :

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

Linux 命令大全Commandes Linux complètes

Autres extensions