Je fais des recherche avec awk dans un fichier log tel que :
awk '/keyword1/ || /keyword2/ {print}' fichier.log
J'aimerai modifier cette commande pour avoir keyword1 et keyword2 et éliminer keyword3 contenu dans les ligne de keyword 1 ou keyword2
Merci de votre aide.
# Je suis pas fan de awk mais...
Posté par Chris K. . Évalué à 3.
awk '(/keyword1/ || /keyword2/) && !/keyword3/ {print}' fichier.log
C'est pas bien de faire faire ses exercices sur linuxfr ;)...
[^] # Re: Je suis pas fan de awk mais...
Posté par dubis . Évalué à 1.
Ce n'est pas un exercice mais une vraie interrogation ;-)
[^] # Re: Je suis pas fan de awk mais...
Posté par Chris K. . Évalué à 1.
[^] # Re: Je suis pas fan de awk mais...
Posté par totof2000 . Évalué à 3.
awk '(/keyword1/ || /keyword2/) {gsub (/keyword3/,"");print}' fichier.log
[^] # Re: Je suis pas fan de awk mais...
Posté par Chris K. . Évalué à 1.
[^] # Re: Je suis pas fan de awk mais...
Posté par barmic . Évalué à 3.
Pour les décideurs pressés sub fait une substitution mais uniquement sur le premier motif qui match dans la chaine et gsub fait la même chose mais sur toute la chaine.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
# sed !
Posté par gaaaaaAab . Évalué à 2.
sed '/keyword1\|keyword2/ { s/keyword3//g}'
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.