Forum Programmation.shell faire un grep de plusieurs mots avec awk

Posté par  .
Étiquettes : aucune
0
27
juil.
2007
Bonjour,

Je suis newbies avec awk et ça commance bien :)
Je n'arrive pas à capturer des lignes d'un fichier avec des mots clés. J'utilise la commande suivante :

awk '$5 == "keyword1" & "keyword2" {print}' fichier.log


Le problème avec cette commande, il faut que keyword soit strictement égale à la cible recherchée. Malheureusement, ma cible sont des adresses mails et j'aimerais la recherche que sur le nom d'utilisateur car le nom de domaine m'est inconnu.

J'aimerais donc savoir quel est l'opérateur qui remplacerait "==" (Strictement égale) pour avoir une recherche sur keyword1 et non pas sur l'expression présente dans le fichier du type keyword1@nom.de.domaine.org.

J'ai essayé ">=" "<=" mais cela met les keyword en début ou fin de liste. J'aimerais faire une véritable extraction.
J'espère m'être fait comprendre.
Merci de votre aide.
  • # Comme un grand peut être

    Posté par  . Évalué à 1.

    J'ai trouvé :


    awk '/keyword1/ || /keyword2/ {print}' fichier.log


    Si il y avait avec egrep mais ce n'est pas présent par défaut sur les machines SUN :

    egrep 'keyword1|keyword2' fichier.log


    Merci quand même
    • [^] # Re: Comme un grand peut être

      Posté par  . Évalué à 1.

      Perso je fais plus des trucs du genre :

      ~ c'est pour contient

      cat fichier.log |awk '{ (if $5 ~ "keyword1" || $5 ~ "keyword2" ) print $0 }'

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.