146 votes

grep exclure plusieurs chaînes de caractères

J'essaie de voir un fichier journal en utilisant tail -f et je veux exclure toutes les lignes contenant les chaînes de caractères suivantes :

Nopaging the limit is et keyword to remove is

Je suis capable d'exclure une chaîne de caractères comme ceci :

tail -f admin.log|grep -v "Nopaging the limit is"

Mais comment exclure les lignes contenant l'un ou l'autre des éléments suivants string1 o string2 ?

134voto

Eric Leschinski Points 14289

Deux exemples de filtrage de plusieurs lignes avec grep :

Mettez ça dans filename.txt :

abc
def
ghi
jkl

Commande grep utilisant l'option -E avec un pipe entre les tokens dans une chaîne :

grep -Ev 'def|jkl' filename.txt

des empreintes :

abc
ghi

Commande utilisant l'option -v avec un pipe entre les tokens entourés de parens :

egrep -v '(def|jkl)' filename.txt

des empreintes :

abc
ghi

76voto

wisbucky Points 829
grep -Fv -e 'Nopaging the limit is' -e 'keyword to remove is'

-F correspond à des chaînes littérales (au lieu de regex)

-v inverse la correspondance

-e permet des modèles de recherche multiples (tous les modèles littéraux et inversés)

47voto

rezizter Points 542

Une autre option consiste à créer une liste d'exclusion, ce qui est particulièrement utile lorsque vous avez une longue liste de choses à exclure.

vi /root/scripts/exclude_list.txt

Maintenant, ajoutez ce que vous voulez exclure

Nopaging the limit is
keyword to remove is

Utilisez maintenant grep pour supprimer les lignes de votre fichier journal et afficher les informations non exclues.

grep -v -f /root/scripts/exclude_list.txt /var/log/admin.log

23voto

Stefan Podkowinski Points 4180
egrep -v "Nopaging the limit is|keyword to remove is"

17voto

hs.chandra Points 709
tail -f admin.log|grep -v -E '(Nopaging the limit is|keyword to remove is)'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X