Filtrer résultat d'un grep
Résolu
Bouboune
-
Bouboune -
Bouboune -
Bonjour,
J'aurais besoin d'un petit coup de pouce!
Quand je recherche quelque chose dans un fichier texte sous linux, j'utilise cette commande :
grep "[mot clé]" [fichier texte] |grep -v "[mot clé à exclure]"
S'affiche alors toutes les occurrences correspondant à ma recherche. Cependant si une même occurrence apparait x fois dans le fichier, elle s'affiche x fois dans le résultat de ma recherche.
Ce que j'aimerais donc, c'est que ma recherche ne retourne qu'un résultat par occurrence.
Exemple 1 (résultat obtenu) :
$grep "chant" log.txt |grep -v "ent"
chantes
chantons
chant
chant
chantez
chantes
Exemple 2(résultat désiré) :
$grep "chant" log.txt |grep -v "ent" |"commande magique"
chantes
chantons
chant
chantez
Auriez-vous une idée?
Merci d'avance!
Bouboune
J'aurais besoin d'un petit coup de pouce!
Quand je recherche quelque chose dans un fichier texte sous linux, j'utilise cette commande :
grep "[mot clé]" [fichier texte] |grep -v "[mot clé à exclure]"
S'affiche alors toutes les occurrences correspondant à ma recherche. Cependant si une même occurrence apparait x fois dans le fichier, elle s'affiche x fois dans le résultat de ma recherche.
Ce que j'aimerais donc, c'est que ma recherche ne retourne qu'un résultat par occurrence.
Exemple 1 (résultat obtenu) :
$grep "chant" log.txt |grep -v "ent"
chantes
chantons
chant
chant
chantez
chantes
Exemple 2(résultat désiré) :
$grep "chant" log.txt |grep -v "ent" |"commande magique"
chantes
chantons
chant
chantez
Auriez-vous une idée?
Merci d'avance!
Bouboune
Configuration: Windows XP Firefox 3.0
1 réponse
-
Salut,
Si fichier déjà trié :
grep "chant" log.txt |grep -v "ent" |uniq
ou (si pas trié) :
grep "chant" log.txt |grep -v "ent" |sort -u
;-))
-
- La commande uniq ne peut évaluer le résultat que si le fichier de départ est trié, la comparaison se basant sur les lignes consécutives...
Un exemple pour illustrer :
ssh$ echo -e "A\nB\nB\nC\nB\nD\nD\nD\nA\nC" A B B C B D D D A C ssh$ echo -e "A\nB\nB\nC\nB\nD\nD\nD\nA\nC" | uniq A B C B D A C ssh$ echo -e "A\nB\nB\nC\nB\nD\nD\nD\nA\nC" | sort -u A B C D ssh$ echo -e "A\nB\nB\nC\nB\nD\nD\nD\nA\nC" | sort | uniq A B C D ssh$
;-))
-