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 dubis . Évalué à 1.
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 mekare . Évalué à 1.
~ 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.