Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

uniq

En comparaison avec sort, uniq programme est un poids léger. uniq effectue une tâche apparemment triviale. Lorsqu'il reçoit un fichier trié (ou une entrée standard), il supprime toutes les lignes en double et envoie les résultats à la sortie standard. Il est souvent utilisé en conjonction avec sort pour nettoyer la sortie des doublons.


image

Conseil: Tandis que uniq est un outil Unix traditionnel souvent utilisé avec sort, la version GNU de sort prend en charge un -u option, qui supprime les doublons de la sortie triée.


image

Créons un fichier texte pour essayer ceci :



[moi@linuxbox ~]$ chat > ​​foo.txt a

bcabc

[moi@linuxbox ~]$ chat > ​​foo.txt a

bcabc


N'oubliez pas de taper Ctrl-d pour terminer l'entrée standard. Maintenant, si nous courons uniq sur notre fichier texte :



[moi@linuxbox ~]$ uniq foo.txt

abcbc

[moi@linuxbox ~]$ uniq foo.txt

abcbc


les résultats ne sont pas différents de notre fichier d'origine ; les doublons n'ont pas été supprimés. Pour

uniq pour faire son travail, l'entrée doit être triée en premier :


[moi@linuxbox ~]$ trier foo.txt | unique

a B C

[moi@linuxbox ~]$ trier foo.txt | unique

a B C


Ceci est dû au fait uniq supprime uniquement les lignes en double qui sont adjacentes les unes aux autres.

uniq a plusieurs options. Voici les plus courantes :


Tableau 20-2 : Options uniq communes


Description des options

Description des options

-c Affiche une liste de lignes en double précédée du nombre de fois où la ligne apparaît.


image

-d Affiche uniquement les lignes répétées, plutôt que les lignes uniques.


image

-f n ignorer n champs de tête dans chaque ligne. Les champs sont séparés par des espaces comme ils sont dans sort; cependant, contrairement sort, uniq n'a pas d'option pour définir un autre séparateur de champs.


image

-i Ignore la casse lors des comparaisons de lignes.


image

-s n Sauter (ignorer) le début n caractères de chaque ligne.


image

-u Ne produit que des lignes uniques. Les lignes avec des doublons sont ignorées.


image


Ici on voit uniq utilisé pour rapporter le nombre de doublons trouvés dans notre fichier texte, en utilisant le -c option:


[moi@linuxbox ~]$ trier foo.txt | uniq -c

2 à

2 b

2 c

[moi@linuxbox ~]$ trier foo.txt | uniq -c

2 à

2 b

2 c


Meilleur système d'exploitation Cloud Computing chez OnWorks :