Commande Linux uniq
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 30Autres extensions
Commandes Linux complètes