Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Glob and grep



On 16/12/2019 23:10, Mikael Magnusson wrote:
On 12/16/19, Nick Cross <zsh@xxxxxxxxx> wrote:

Hi,

While I've been able to find varying amounts of information on the net I
haven't found quite enough to get the following working.

I would like to condense the following into a single grep / glob
expression where I search recursively through a directory tree, ignoring
any sub-trees starting with 'test' or 'target'.

grep <pattern> **/*.groovy  | egrep -v "(/test/|/target/)"

While I found information about ^(xxx) it wasn't clear how to have
multiple expressions to ignore.

Am I right in thinking I can add (.) to e.g. *.groovy to ensure I only
search for files as well ?

I think what you want is
grep <pattern> (^(test|target)/)#*.groovy(.)


Thats great thanks! Works perfectly.

So to break it down - the ^ negates the or'd block. Can you explain how the wrapped (../) and # then works please?

Thanks

Nick



Messages sorted by: Reverse Date, Date, Thread, Author