Maison  >  Article  >  Tutoriel système  >  Exemple de commande Linux uniq

Exemple de commande Linux uniq

WBOY
WBOYoriginal
2024-07-18 16:17:06545parcourir

Notez qu'uniq ne supprimera pas les lignes en double sauf si elles sont adjacentes. Par conséquent, vous devrez peut-être d'abord les trier ou combiner la commande sort avec uniq pour obtenir les résultats. Laissez-moi vous montrer quelques exemples.

Tout d’abord, créons un fichier avec quelques lignes répétitives :

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 pouvez le voir dans le fichier ci-dessus, nous avons des lignes en double (les première et deuxième lignes, les troisième et cinquième lignes sont des doublons).

1. Utilisez la commande uniq pour supprimer les lignes consécutives en double dans le fichier

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

uniq ostechnix.txt

Exemple de sortie :

Linux之uniq 命令示例

Comme vous pouvez le voir, la commande uniq supprime toutes les lignes consécutives en double dans le fichier donné. Vous remarquerez peut-être également que la sortie ci-dessus comporte toujours les deuxième et quatrième lignes répétées. En effet, la commande uniq ne supprimera les lignes en double que si elles sont adjacentes. Bien entendu, nous pouvons également supprimer les lignes en double non consécutives. Voir le deuxième exemple ci-dessous.

2. Supprimez toutes les lignes en double
sort ostechnix.txt | uniq

Exemple de sortie :

Linux之uniq 命令示例

L'avez-vous vu ? Il n'y a pas de lignes en double. En d'autres termes, la commande ci-dessus affichera les lignes qui n'apparaissent qu'une seule fois dans ostechnix.txt. Nous utilisons la commande sort en conjonction avec la commande uniq car, comme je l'ai mentionné, uniq ne supprimera pas les lignes en double à moins qu'elles ne soient adjacentes.

3. Afficher uniquement la seule ligne du fichier

Pour afficher uniquement la seule ligne du fichier, vous pouvez faire ceci :

sort ostechnix.txt | uniq -u

Exemple de sortie :

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

Comme vous pouvez le constater, seules deux lignes sont uniques dans le fichier donné.

4. Afficher uniquement les lignes en double

De même, nous pouvons également afficher des lignes répétées dans le fichier, comme ceci :

sort ostechnix.txt | uniq -d

Exemple de sortie :

Linus is the creator of Linux.
welcome to ostechnix

Ces deux lignes sont des lignes en double dans le fichier ostechnix.txt. Notez que -d (d minuscule) n'imprimera que les lignes en double, une par groupe. Pour imprimer toutes les lignes en double, utilisez -D (D majuscule) comme ceci :

sort ostechnix.txt | uniq -D

Voir la différence entre les deux options dans la capture d'écran ci-dessous :

Linux之uniq 命令示例

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

Pour une raison quelconque, vous souhaiterez peut-être vérifier le nombre de fois où chaque ligne est répétée dans un fichier donné. Pour ce faire, utilisez l'option -c comme indiqué ci-dessous :

sort ostechnix.txt | uniq -c

Exemple de sortie :

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

Nous pouvons également trier par nombre d'occurrences de chaque ligne puis l'afficher, comme indiqué ci-dessous :

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

Exemple de sortie :

welcome to ostechnix
 Linus is the creator of Linux.
 Top 500 super computers are powered by Linux
 Linux is secure by default
6. Limiter la comparaison à N caractères

Nous pouvons utiliser l'option -w pour limiter la comparaison à un nombre spécifique de caractères dans le fichier. Par exemple, comparons les quatre premiers caractères du fichier et affichons les lignes en double comme ceci :

uniq -d -w 4 ostechnix.txt
7. Ignorez les N caractères spécifiés par comparaison

Comme limiter la comparaison aux N premiers caractères de la ligne du fichier, on peut également utiliser l'option -s pour ignorer la comparaison des N premiers caractères.

La commande suivante ignorera les quatre premiers caractères de chaque ligne du fichier à des fins de comparaison :

uniq -d -s 4 ostechnix.txt

Pour ignorer la comparaison des N premiers champs (annotation LCTT : les premières colonnes) au lieu des caractères, utilisez l'option -f dans la commande ci-dessus.

Pour plus de détails, veuillez vous référer à la section aide :

uniq --help

Vous pouvez également utiliser la commande man pour afficher :

man uniq

C'est tout pour aujourd'hui ! J'espère que vous avez maintenant une compréhension de base de la commande uniq et de son objectif. Si vous avez trouvé notre guide utile, partagez-le sur vos réseaux sociaux et continuez à nous soutenir. D'autres cadeaux arrivent, alors restez à l'écoute !

Bravo !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn