Using grep with regular expression to filter out matches

The problem is that by default, you need to escape your |’s to get proper alternation. That is, grep interprets “foo|bar” as matching the literal string “foo|bar” only, whereas the pattern “foo\|bar” (with an escaped |) matches either “foo” or “bar”.

To change this behavior, use the -E flag:

tail -f logFile | grep -vE 'string one|string two'

Alternatively, use egrep, which is equivalent to grep -E:

tail -f logFile | egrep -v 'string one|string two'

Also, the -e is optional, unless your pattern begins with a literal hyphen. grep automatically takes the first non-option argument as the pattern.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)