Dédoublonnage : uniq
La commande uniq permet de dédoublonner les lignes d'un fichier. Seules les lignes identiques consécutives sont traitées. Elle s'utilise le plus souvent à la suite de la commande sort. Le résultat est stocké dans un fichier de sortie, si celui-ci est spécifié, sur la sortie standard dans le cas contraire.
Syntaxe
uniq [options] [fichier_entree [fichier_sortie]]
Principales options :
-d : Affichage des doublons
-c : Comptage des doublons
Exemples
Le fichier fic20 contient des lignes en double
$ cat fic20
ceci est un test
ceci est un test
ceci est un test
ceci est un test
ceci est un autre test
ceci est un test
ceci est un autre test
ceci est un test
ceci est un test
et un autre test
ceci est un fichier
$
Le fichier doit être trié pour que les lignes identiques soient consécutives :
$ sort fic20
ceci est un autre test
ceci est un autre test
ceci est un fichier
ceci est un test
ceci est un test
ceci est un test
ceci est un test
ceci est un test
ceci est un test
ceci est un test
et un autre test
$
Et enfin, suppression des doublons :
$ sort fic20 | uniq
ceci est un autre test
ceci est un fichier
ceci est un test
ceci est un test
ceci est un test
et un autre test
$
Résultat identique avec la commande sort et l'option -u :
$ sort -u fic20
ceci est un autre test
ceci est un fichier
ceci est un test
ceci est un test
ceci est un test
et un autre test
$
Afficher devant chaque ligne son nombre d'occurences dans le fichier :
$ sort fic20 | uniq -c
2 ceci est un autre test
1 ceci est un fichier
5 ceci est un test
1 ceci est un test
1 ceci est un test
1 et un autre test
$
Afficher uniquement les lignes ayant des doublons :
$ sort fic20 | uniq -d
ceci est un autre test
ceci est un test
$
Combinées les options -c et -d :
$ sort fic20 | uniq -cd
2 ceci est un autre test
5 ceci est un test
$
Afficher les lignes uniques :
$ sort fic20 | uniq -u
ceci est un fichier
ceci est un test
ceci est un test
et un autre test
$ sort fic20 | uniq -cu
1 ceci est un fichier
1 ceci est un test
1 ceci est un test
1 et un autre test
$
Ajouter un commentaire