On Thu, 2006-02-02 at 09:39 -0600, Steven J Lamb wrote:
what I am looking for is information on how to use grep in the following way. I want to do essentially this
grep (string1|string2|string3) filename
I would use this to search filename for either string1, string2 or string 3 instances
I realize I could do the following but would like to use it as one grep statement as I believe it should be more efficient.
tmp;
grep string1 filename >>tmp; grep string2 filename >>tmp; grep string3 filename >>tmp
as this would be defined in a normal regular expression. grep claims to be able to use this functionality as best I can tell ... it is documented in the man page and it says
Two regular expressions may be joined by the infix operator |; the resulting regular expression matches any string matching either subexpression.
I have not been able to find an example of this anywhere and have tried several forms of the syntax but no luck. my command interpreter keeps trying to use the pipe instead of letting grep have it.
any one have any thoughts
thanks
With basic regular expression you need to quote the "|" so it would be something like this:
grep 'string1|string2|string3' file
The alternative would be to get in to extended regular expression with egrep or grep -E which would look like:
egrep 'string1|string2|string3' file
HTH,
--Rob