Commande Uniq - Supprimer les lignes en double d’un fichier Linux
En tant qu’utilisateurs de Linux, nous interagissons régulièrement avec différents types de fichiers. L’un des types de fichiers les plus courants sur tout système informatique est un fichier texte brut. Souvent, il est très courant de trouver le texte requis dans ces fichiers.
Cependant, cette tâche simple devient rapidement ennuyeuse si le fichier contient des entrées en double. Dans de tels cas, nous pouvons utiliser la commande uniq pour filtrer efficacement le texte en double.
Sous Linux, nous pouvons utiliser la commande uniq qui s’avère pratique lorsque nous voulons lister ou supprimer les lignes en double qui se présentent de manière adjacente.
En dehors de cela, nous pouvons également utiliser la commande uniq pour compter les entrées en double. Il est important de noter que la commande uniq ne fonctionne que lorsque des entrées en double sont adjacentes.
Dans ce guide simple, nous allons discuter en profondeur de la commande uniq avec des exemples pratiques sous Linux.
Syntaxe de la commande uniq
La syntaxe de la commande uniq est très facile à comprendre et est similaire à celle des autres commandes Linux :
$ uniq [OPTIONS] [INPUT] [OUTPUT]
Il est important de noter que toutes les options et paramètres de la commande uniq sont facultatifs.
Création d’un exemple de fichier texte
Pour commencer, tout d’abord, créons un fichier texte simple avec un éditeur vi et ajoutons le contenu dupliqué suivant situé dans les lignes adjacentes.
$ vi linux-distributions.txt
cat linux-distributions.txt
Maintenant, utilisons ce fichier pour comprendre l’utilisation de la commande uniq.
1. Supprimer les lignes en double d’un fichier texte
L’une des utilisations courantes de la commande uniq est de supprimer les lignes en double adjacentes du fichier texte, comme indiqué.
$ uniq linux-distributions.txt
Dans la sortie ci-dessus, nous pouvons voir que la commande uniq a réussi à éliminer les lignes dupliquées.
2. Compter les lignes dupliquées dans un fichier texte
Dans l’exemple précédent, nous avons vu comment supprimer les lignes en double. Cependant, il arrive que nous souhaitions également savoir combien de fois la ligne dupliquée apparaît.
Nous pouvons y parvenir en utilisant l’option -c comme indiqué dans l’exemple ci-dessous :
$ uniq -c linux-distributions.txt
Dans la sortie ci-dessus, la première colonne représente le nombre de fois que la ligne est répétée.
3. Supprimez les doublons sans sensibilité à la casse
Par défaut, la commande uniq fonctionne de manière sensible à la casse. Cependant, nous pouvons désactiver ce comportement par défaut en utilisant l’option -i comme indiqué.
$ uniq -i linux-distributions.txt
Dans cet exemple, nous pouvons observer que maintenant, la chaîne Ubuntu et UBUNTU sont traitées de la même manière. Parallèlement à cela, la même chose se produit avec la chaîne CentOS et CENTOS.
4. Imprimer uniquement les lignes en double à partir d’un fichier
Parfois, nous voulons simplement imprimer les lignes dupliquées à partir d’un fichier texte, dans ce cas, vous pouvez utiliser l’option -d comme indiqué.
$ uniq -d linux-distributions.txt
Dans la sortie ci-dessus, nous pouvons voir que la commande uniq affiche l’entrée en double de chaque groupe.
5. Imprimer toutes les lignes en double à partir d’un fichier
Dans l’exemple précédent, nous avons vu comment afficher une ligne dupliquée de chaque groupe. De la même manière, nous pouvons également afficher toutes les lignes en double à l’aide de l’option -D :
$ uniq -D linux-distributions.txt
La sortie ci-dessus n’affiche pas le texte UBUNTU, CENTOS et Alpine car ce sont des lignes uniq.
6. Afficher les lignes en double par groupes dans une nouvelle ligne
Dans l’exemple précédent, nous avons imprimé toutes les lignes en double. Cependant, nous pouvons rendre la même sortie plus lisible en séparant chaque groupe par une nouvelle ligne.
Utilisons l’option --all-repeated=separate pour obtenir la même chose :
$ uniq --all-repeated=separate linux-distributions.txt
Dans la sortie ci-dessus, nous pouvons voir que chaque groupe répété est séparé par un nouveau délimiteur de ligne.
7. Imprimer uniquement des lignes uniques à partir d’un fichier
Dans les exemples précédents, nous avons vu comment imprimer des lignes en double. De même, nous pouvons également demander à la commande uniq d’afficher uniquement des lignes non dupliquées.
Maintenant, utilisons l’option -u pour imprimer uniquement des lignes uniques :
$ uniq -u linux-distributions.txt
Ici, on peut voir que la commande uniq affiche les lignes qui ne sont pas dupliquées.
8. Supprimer les lignes en double non adjacentes dans le fichier
L’une des limitations triviales de la commande uniq est qu’elle ne supprime que les entrées en double adjacentes. Cependant, il arrive que nous souhaitions supprimer les entrées en double, quel que soit leur ordre dans le fichier donné.
Dans de tels cas, nous pouvons d’abord trier le contenu du fichier, puis rediriger cette sortie vers la commande uniq comme indiqué.
$ sort linux-distributions.txt | uniq
Dans cet exemple, nous avons utilisé les commandes sort et uniq sans aucune option. Cependant, nous pouvons également combiner d’autres options prises en charge avec ces commandes.
Conclusion
Dans ce guide, nous avons appris la commande uniq à l’aide d’exemples pratiques. Connaissez-vous un autre meilleur exemple de la commande uniq sous Linux ? Faites-nous part de votre point de vue dans les commentaires ci-dessous.








