Filtrer résultat d'un grep

Résolu
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
Configuration: Windows XP
Firefox 3.0

1 réponse

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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

    ;-))
    1
    1. Bouboune
       
      Merci ça marche!
      Par contre je n'ai pas vraiment compris l'histoire du "trié" et "non trié" :s
      0
      1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > Bouboune
         
        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$

        ;-))
        0
      2. Bouboune > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        ok! j'ai ma réponse!

        Merci beaucoup pour cette réactivité!
        0