grep exclude multiple strings

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?

0

8 Answers

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 
3
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)

2

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 
3
egrep -v "Nopaging the limit is|keyword to remove is" 
tail -f admin.log|grep -v -E '(Nopaging the limit is|keyword to remove is)' 

You can use regular grep like this:

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

1

The greps can be chained. For example:

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

If you want to use regex:

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

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like