GNU/Linux >> Tutoriels Linux >  >> Linux

Le didacticiel Uniq Command avec des exemples pour les débutants

Si vous travaillez principalement en ligne de commande et que vous traitez quotidiennement de nombreux fichiers texte, vous devez connaître Uniq commande.

La commande Uniq vous aide à trouver facilement les lignes répétées et en double d'un fichier. Uniq n'est pas seulement pour trouver des doublons, mais aussi pour supprimer les doublons, afficher le nombre d'occurrences des lignes en double, afficher uniquement les lignes répétées et afficher uniquement les lignes uniques, etc.

Veuillez noter que la commande 'uniq' ne détectera pas les lignes répétées à moins qu'elles ne soient adjacentes. Ainsi, vous devrez peut-être d'abord les trier ou combiner la commande sort avec uniq pour obtenir les résultats. Permettez-moi de vous montrer quelques exemples.

Étant donné que la commande uniq fait partie du package GNU coreutils, elle est préinstallée dans la plupart des distributions Linux. Alors, ne nous embêtons pas avec l'installation et voyons quelques exemples pratiques de commandes Uniq.

Exemples de commandes Uniq

Tout d'abord, créons un fichier avec des lignes en double.

$ vi ostechnix.txt
welcome to ostechnix
welcome to ostechnix
Linus is the creator of Linux.
Linux is secure by default
Linus is the creator of Linux.
Top 500 super computers are powered by Linux

Comme vous le voyez dans le fichier ci-dessus, nous avons peu de lignes répétées (les première, deuxième, troisième et cinquième lignes sont des doublons).

1. Supprimer les lignes en double consécutives dans un fichier à l'aide de la commande Uniq

Si vous utilisez la commande 'uniq' sans aucun argument, elle supprimera toutes les lignes en double consécutives et n'affichera que les lignes uniques.

$ uniq ostechnix.txt

Exemple de résultat :

Comme vous pouvez le voir, la commande uniq a supprimé toutes les lignes en double consécutives dans le fichier donné. Vous avez peut-être également remarqué que la sortie ci-dessus contient toujours les doublons dans les deuxième et quatrième lignes. C'est parce que la commande uniq n'omettra les lignes répétées que si elles sont adjacentes. Nous pouvons, bien sûr, supprimer également ces doublons non consécutifs. Regardez le deuxième exemple ci-dessous.

2. Supprimer toutes les lignes en double

$ sort ostechnix.txt | uniq

Exemple de résultat :

Voir? Il n'y a pas de doublons ou de lignes répétées. En d'autres termes, la commande ci-dessus affichera chaque ligne une fois à partir du fichier ostechnix.txt .

Dans l'exemple ci-dessus, nous avons utilisé la commande sort en conjonction avec uniq, car, comme je l'ai déjà mentionné, uniq ne trouvera pas les lignes en double/répétées à moins qu'elles ne soient adjacentes.

3. Afficher uniquement les lignes uniques d'un fichier

Pour afficher uniquement les lignes uniques d'un fichier, la commande serait :

$ sort ostechnix.txt | uniq -u

Exemple de résultat :

Linux is secure by default
Top 500 super computers are powered by Linux

Comme vous pouvez le voir, nous n'avons que deux lignes uniques dans le fichier donné.

4. Afficher uniquement les lignes en double

De même, nous pouvons également afficher les lignes en double à partir d'un fichier comme ci-dessous.

$ sort ostechnix.txt | uniq -d

Exemple de résultat :

Linus is the creator of Linux.
welcome to ostechnix

Ces deux sont les lignes répétées/dupliquées dans le fichier ostechnix.txt. Veuillez noter que -d (d minuscule) n'imprimera que les lignes en double , un pour chaque groupe . Pour imprimer toutes les lignes en double , utilisez -D (majuscule d) comme ci-dessous.

$ sort ostechnix.txt | uniq -D

Voyez la différence entre les deux drapeaux dans la capture d'écran ci-dessous.

5. Afficher le nombre d'occurrences de chaque ligne dans un fichier

Pour une raison quelconque, vous voudrez peut-être vérifier combien de fois une ligne est répétée dans le fichier donné. Pour ce faire, utilisez -c drapeau comme ci-dessous.

$ sort ostechnix.txt | uniq -c

Exemple de résultat :

 2 Linus is the creator of Linux.
 1 Linux is secure by default
 1 Top 500 super computers are powered by Linux
 2 welcome to ostechnix

Nous pouvons également afficher le nombre d'occurrences de chaque ligne avec cette ligne, triées par la commande d'utilisation la plus fréquente :

$ sort ostechnix.txt | uniq -c | sort -nr

Exemple de résultat :

 2 welcome to ostechnix
 2 Linus is the creator of Linux.
 1 Top 500 super computers are powered by Linux
 1 Linux is secure by default

6. Limitez la comparaison à 'N' caractères

La commande Uniq nous permet de limiter la comparaison à un nombre particulier de caractères de lignes dans un fichier en utilisant -w drapeau. Par exemple, limitons la comparaison aux 4 premiers caractères des lignes d'un fichier et affichons les lignes répétées comme indiqué ci-dessous.

$ uniq -d -w 4 ostechnix.txt

7. Evitez la comparaison avec les premiers 'N' caractères

Comme limiter la comparaison à N caractères de lignes dans un fichier, on peut aussi éviter de comparer les N premiers caractères en utilisant -s drapeau.

La commande suivante évitera la comparaison avec les 4 premiers caractères des lignes d'un fichier :

$ uniq -d -s 4 ostechnix.txt

Pour éviter de comparer les N premiers champs au lieu de caractères, utilisez l'indicateur '-f' dans la commande ci-dessus.

Pour plus de détails, consultez la section d'aide ;

$ uniq --help

et les pages de manuel.

$ man uniq

Lire aussi :

  • Le didacticiel de la commande Fold avec des exemples pour les débutants

Linux
  1. Linux expand Tutoriel de commande pour les débutants (avec exemples)

  2. Tutoriel de commande de facteur Linux pour les débutants (avec exemples)

  3. Linux oui Tutoriel de commande pour les débutants (avec exemples)

  4. Tutoriel de commande Linux tac pour les débutants (avec exemples)

  5. Le didacticiel de commande Numfmt avec des exemples pour les débutants

Le didacticiel de commande de pliage avec des exemples pour les débutants

Le didacticiel de commande df avec des exemples pour les débutants

Le didacticiel Top Command avec des exemples pour les débutants

Le didacticiel de la commande mktemp avec des exemples pour les débutants

Le didacticiel de la commande Grep avec des exemples pour les débutants

Le didacticiel de commande fc avec des exemples pour les débutants