uniq compare chaque ligne à la précédente. Il peut regrouper, compter ou sélectionner des séries adjacentes identiques, mais ne cherche pas les doublons séparés dans tout le fichier.
Text-Fu · Leçon 14
uniq (unique)
Apprenez à regrouper, compter ou filtrer les groupes adjacents de lignes identiques avec uniq.
Regrouper les lignes dupliquées adjacentes
Si reading.txt contient :
book
book
paper
paper
article
article
magazine
$ uniq reading.txt
book
paper
article
magazine
Une ligne représentative est produite par groupe adjacent. Le fichier d'entrée reste inchangé.
Que fait uniq reading.txt par défaut ?
Compter les groupes adjacents
$ uniq -c reading.txt
2 book
2 paper
2 article
1 magazine
Ces nombres sont les longueurs des séries, pas des totaux globaux, sauf si les lignes égales ont été regroupées au préalable.
Que représente le nombre produit par uniq -c ?
Sélectionner les groupes uniques ou répétés
$ uniq -u reading.txt
magazine
Utilisez -d pour afficher un représentant de chaque groupe répété :
$ uniq -d reading.txt
book
paper
article
-u ne garde que les groupes d'une ligne. -d émet une ligne par groupe répété ; GNU uniq -D émet toutes les lignes de ces groupes.
Quelle commande affiche seulement les groupes adjacents présents exactement une fois ?
Quelle commande affiche une ligne par groupe adjacent présent plusieurs fois ?
Regrouper les doublons séparés
Si les valeurs égales ne sont pas voisines, elles forment des groupes distincts :
book
paper
book
paper
article
magazine
article
Sur ce fichier, aucune ligne n'est regroupée puisque les voisines diffèrent :
$ uniq reading.txt
book
paper
book
paper
article
magazine
article
Lorsque l'ordre peut changer, triez d'abord :
$ sort reading.txt | uniq
article
book
magazine
paper
Employez une locale et une politique de comparaison cohérentes. sort -u reading.txt peut aussi trier et ne garder qu'une ligne par clé égale.
Des lignes égales sont dispersées dans reading.txt et l'ordre peut changer. Quel pipeline produit une copie triée de chaque ligne distincte ?
Sans fichier, uniq lit stdin. GNU propose aussi -i pour ignorer la casse, et -f, -s, -w pour limiter la région comparée.
Pour vous exercer :
- Commande Linux uniq : filtrer les doublons - Identifiez et analysez les doublons avec
sortetuniq. - Commande Linux sort : trier du texte - Organisez les lignes avant
uniq. - Comptage et tri de mots - Analysez et triez des données textuelles.
Leçon terminée
Vous avez terminé uniq (unique)
Vous savez analyser les groupes adjacents de lignes égales avec uniq.
Réduire chaque groupe adjacent à une ligne.
Compter les occurrences consécutives avec
-c.Choisir les groupes unitaires avec
-u.Choisir les groupes répétés avec
-dou GNU-D.Trier d'abord pour regrouper les doublons séparés.
Conservez votre progression
Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.
Créer un compte gratuit