GNU/Linux >> Tutoriels Linux >  >> Linux

7 Exemples de commandes Linux Uniq pour supprimer les lignes en double d'un fichier

La commande Uniq est utile pour supprimer ou détecter les entrées en double dans un fichier. Ce didacticiel explique quelques-unes des options de ligne de commande uniq les plus fréquemment utilisées qui pourraient vous être utiles.

Le fichier de test suivant est utilisé dans certains exemples pour comprendre le fonctionnement de la commande uniq.

$ cat test
aa
aa
bb
bb
bb
xx

1. Utilisation de base

Syntaxe :

$ uniq [-options]

Par exemple, lorsque la commande uniq est exécutée sans aucune option, elle supprime les lignes en double et affiche les lignes uniques comme indiqué ci-dessous.

$ uniq test
aa
bb
xx

2. Compter le nombre d'occurrences à l'aide de l'option -c

Cette option permet de compter l'occurrence des lignes dans le fichier.

$ uniq -c test
      2 aa
      3 bb
      1 xx

3. Imprimer uniquement les lignes en double à l'aide de l'option -d

Cette option permet d'imprimer uniquement les lignes répétées en double dans le fichier. Comme vous le voyez ci-dessous, cela n'a pas affiché la ligne "xx", car elle n'est pas en double dans le fichier de test.

$ uniq -d test
aa
bb

L'exemple ci-dessus affiche toutes les lignes en double, mais une seule fois. Mais, cette option -D imprimera toutes les lignes en double dans le fichier. Par exemple, la ligne "aa" figurait deux fois dans le fichier de test, donc la commande uniq suivante a affiché la ligne "aa" deux fois dans cette sortie.

$ uniq -D test
aa
aa
bb
bb
bb

4. Imprimer uniquement les lignes uniques à l'aide de l'option -u

Cette option permet d'imprimer uniquement des lignes uniques dans le fichier.

$ uniq -u test
xx

Si vous souhaitez supprimer les lignes en double d'un fichier en utilisant un certain modèle, vous pouvez utiliser la commande sed delete.

5. Limiter la comparaison à 'N' caractères en utilisant l'option -w

Cette option limite la comparaison aux premiers caractères "N" spécifiés uniquement. Pour cet exemple, utilisez le fichier d'entrée test2 suivant.

$ cat test2
hi Linux
hi LinuxU
hi LinuxUnix
hi Unix

La commande uniq suivante utilisant l'option 'w' compare les 8 premiers caractères des lignes du fichier, puis l'option 'c' imprime le nombre d'occurrences des lignes du fichier.

$ uniq -c -w 8 testNew
  3 hi Linux
  1 hi Unix

La commande uniq suivante utilisant l'option 'w' compare les 8 premiers caractères des lignes du fichier, puis l'option 'D' imprime toutes les lignes en double du fichier.

$ uniq -D -w 8 testNew
hi Linux
hi LinuxU
hi LinuxUnix

6. Évitez de comparer les premiers caractères "N" à l'aide de l'option -s

Cette option ignore la comparaison des premiers caractères "N" spécifiés. Pour cet exemple, utilisez le fichier d'entrée test3 suivant.

$ cat test3
aabb
xxbb
bbc
bbd

La commande uniq suivante utilisant l'option 's' saute la comparaison des 2 premiers caractères des lignes du fichier, puis l'utilisation de l'option 'D' imprime toutes les lignes en double du fichier.

Ici, les 2 caractères commençants, c'est-à-dire "aa" sur la 1ère ligne et "xx" sur la 2ème ligne, ne seraient pas comparés, puis les 2 caractères suivants "bb" sur les deux lignes seraient identiques et seraient donc affichés comme des lignes dupliquées.

$ uniq -D -s 2 test3
aabb
xxbb

7. Évitez de comparer les premiers champs "N" à l'aide de l'option -f

Cette option ignore la comparaison des premiers champs "N" spécifiés de lignes dans le fichier.

$ cat test2
hi hello Linux
hi friend Linux
hi hello LinuxUnix

La commande uniq suivante utilisant l'option 'f' saute la comparaison des 2 premiers champs de lignes dans le fichier, puis en utilisant l'option 'D' imprime toutes les lignes en double du fichier.

Ici, commencer par 2 champs, c'est-à-dire "salut bonjour" sur la 1ère ligne et "salut ami" sur la 2ème ligne, ne serait pas comparé, puis le champ suivant "Linux" sur les deux lignes serait identique et serait donc affiché sous forme de lignes dupliquées.

$ uniq -D -f 2 test2
hi hello Linux
hi friend Linux

Linux
  1. Commande mv sous Linux :7 exemples essentiels

  2. ln Exemples de commandes sous Linux

  3. Exemples de commandes gzip sous Linux

  4. plus d'exemples de commandes sous Linux

  5. head Exemples de commandes sous Linux

Commande Linux WC avec exemples

Exemples de commande Linux cat

Exemples de commande Linux gzip

Exemples de commandes dumpe2fs sous Linux

Exemples de commandes fsck sous Linux

Exemples de commandes mkfs sous Linux