grep exclude multiple strings

LinuxUbuntu

Linux Problem Overview


I am trying to see a log file using tail -f and want to exclude all lines containing the following strings:

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

I am able to exclude one string like this:

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

But how do I exclude lines containing either of string1 or string2.

Linux Solutions


Solution 1 - Linux

Two examples of filtering out multiple lines with grep:

Put this in filename.txt:

abc
def
ghi
jkl

grep command using -E option with a pipe between tokens in a string:

grep -Ev 'def|jkl' filename.txt

prints:

abc
ghi

Command using -v option with pipe between tokens surrounded by parens:

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

prints:

abc
ghi

Solution 2 - Linux

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

-F matches by literal strings (instead of regex)

-v inverts the match

-e allows for multiple search patterns (all literal and inverted)

Solution 3 - Linux

Another option is to create a exclude list, this is particulary usefull when you have a long list of things to exclude.

vi /root/scripts/exclude_list.txt

Now add what you would like to exclude

Nopaging the limit is
keyword to remove is

Now use grep to remove lines from your file log file and view information not excluded.

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

Solution 4 - Linux

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

Solution 5 - Linux

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

Solution 6 - Linux

You can use regular grep like this:

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

Solution 7 - Linux

The greps can be chained. For example:

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

Solution 8 - Linux

If you want to use regex:

grep -Ev -e "^1" -e '^lt' -e 'John'

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJeetsView Question on Stackoverflow
Solution 1 - LinuxEric LeschinskiView Answer on Stackoverflow
Solution 2 - LinuxwisbuckyView Answer on Stackoverflow
Solution 3 - LinuxrezizterView Answer on Stackoverflow
Solution 4 - LinuxStefan PodkowinskiView Answer on Stackoverflow
Solution 5 - Linuxhs.chandraView Answer on Stackoverflow
Solution 6 - LinuxmikhailView Answer on Stackoverflow
Solution 7 - LinuxFidelView Answer on Stackoverflow
Solution 8 - LinuxYakir GIladi EdryView Answer on Stackoverflow