Re: advanced grep question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux