Frage grep schließt mehrere Zeichenfolgen aus


Ich versuche eine Protokolldatei mit Tail zu sehen -f und möchte alle Zeilen ausschließen, die folgende Zeichenfolgen enthalten:

"Nopaging the limit is"`  and `"keyword to remove is"

Ich kann eine Zeichenfolge wie folgt ausschließen:

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

Aber wie schließe ich Zeilen aus, die eines von beiden enthalten? string1 oder string2.


75
2018-04-25 10:43


Ursprung


Antworten:


Zwei Beispiele zum Ausfiltern mehrerer Zeilen mit grep:

Setze das ein filename.txt:

abc
def
ghi
jkl

Befehl grep mit der Option -E mit einer Pipe zwischen Token in einer Zeichenfolge:

grep -Ev 'def|jkl' filename.txt

Drucke:

abc
ghi

Befehl, der die Option -v mit der Pipe zwischen Token verwendet, die von Parens umgeben sind:

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

Drucke:

abc
ghi

71
2017-08-11 18:28



Eine andere Option ist das Erstellen einer Ausschlussliste. Dies ist besonders nützlich, wenn Sie eine lange Liste von auszuschließenden Dingen haben.

vi /root/scripts/exclude_list.txt

Fügen Sie nun das hinzu, was Sie ausschließen möchten

Nopaging the limit is
keyword to remove is

Verwenden Sie jetzt grep, um Zeilen aus Ihrer Dateiprotokolldatei zu entfernen und nicht ausgeschlossene Informationen anzuzeigen.

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

28
2018-02-13 08:30



egrep -v "Nopaging the limit is|keyword to remove is"

18
2018-04-25 10:49



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

-F Übereinstimmung mit Literalstrings (anstelle von Regex)

-v invertiert das Spiel

-e ermöglicht mehrere Suchmuster (alle wörtlich und invertiert)


18
2017-11-01 23:50



Sie können reguläres Grep wie folgt verwenden:

tail -f admin.log | grep -v "Nopaging the limit is\|keyword to remove is"


9
2017-10-21 04:43



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

8
2018-04-25 10:51



Die Greps können angekettet werden. Beispielsweise:

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

4
2018-02-17 17:13