Derek
Derek

Reputation: 11915

Recursive grep for bash in cygwin

if i want an alias to do "rgrep pattern *" to search all files from my current location down through any sub directories, what is an alias for rgrep I can add to my bashrc file?

i would also like it to ignore errors and only report positive hits

Upvotes: 2

Views: 2965

Answers (2)

Richard Fearn
Richard Fearn

Reputation: 25491

How about:

alias rgrep="grep -r"

This will only show 'positive hits', i.e. lines that contain the pattern you specify.

Small piece of advice, however: you might want to get used to just using grep -r directly. You'll then find it much easier if you ever need to use someone else's workstation, for instance!

Edit: you want to match patterns in file names, not in their contents (and also in directory names too). So how about this instead:

alias rgrep="find | grep"

By default, find will find all files and directories, so then it's just a case of passing that list to grep to find the pattern you're looking for.

Upvotes: 0

Dennis Williamson
Dennis Williamson

Reputation: 360065

In order for it to ignore errors (such as "Permission denied"), you'll probably need to use a function instead of an alias:

rgrep () { grep -r "${@}" 2>/dev/null; }

Upvotes: 2

Related Questions