Posts Tagged ‘grep’
Grepping lines with multiple matches
I want to filter log files by matching lines that contains all of set of matches (I don’t want to alternate them).
For example lines like:
RawURL /1.2/user/authorize?ip=10.254.142.175&method=GET
I want to match lines that contain the terms “RawURL” and “/1.2/user/authorize?” without resorting to piping multiple greps:
$ grep RawURL | grep /1.2/user/authorize? *.txt
This means I want a regexp like:
RawURL.+\/1.2\/user\/authorize
Translating to grep extended regex, this becomes:
$ grep -E RawURL.+/1.2/user/authorize *.txt
Note: There is no need to enforce non-greedy matching.
Regular expressions, character classes and special characters
The expression:
RawURL.+\/1.2\/user\/authorize
Is not equivalent to:
RawURL[.]+\/1.2\/user\/authorize
Because in the second one, the special character ‘.’ is no longer special. Character classes have all special characters turned off.
