Si je grep un fichier contenant les éléments suivants:
These are words
These are words
These are words
These are words
... pour le mot These
, il imprimera la chaîne These are words
quatre fois.
Comment empêcher grep d'imprimer plusieurs fois des chaînes récurrentes? Sinon, comment puis-je manipuler la sortie de grep pour supprimer les lignes en double?
command-line
bash
grep
Trae
la source
la source
Réponses:
La philosophie Unix est d'avoir des outils qui font une chose et les font bien. Dans ce cas,
grep
est l'outil qui sélectionne le texte d'un fichier. Pour savoir s'il y a des doublons, on trie le texte. Pour supprimer les doublons, on utilise l'-u
option poursort
. Donc:sort
a de nombreuses options: voirman sort
. Si vous voulez compter les doublons ou avez un schéma plus compliqué pour déterminer ce qui est ou non un doublon, dirigez la sortie de tri versuniq
:grep These filename | sort | uniq
et voyezman
uniq` pour les options.la source
Utilisation d'
grep
un commutateur supplémentaire si vous ne recherchez qu'une seule chaîneDe
man grep
ou en utilisant
awk
;)la source