How to match files *.R and *Rd with find utility?
A suitable use of -regex
would be:
find -regex '.*\.\(R\|Rd\|c\)'
If you want to use regular expressions you need to keep in mind that these apply to the whole path, not only to the filename:
-regex pattern
File name matches regular expression pattern. This is a match
on the whole path, not a search. For example, to match a file
named `./fubar3', you can use the regular expression `.*bar.' or
`.*b.*3', but not `f.*r3'. The regular expressions understood
by find are by default Emacs Regular Expressions, but this can
be changed with the -regextype option.
I agree with sampson-chen's answer, that regexes are probably not the best choice here.
Here you go =)
find -name "*.c" -o -name "*.R" -o -name "*.Rd"
If it's just the 3 extension types that you are looking for, I'd recommend staying away from regex and just using the -o
(as in "or") operator to compose your search instead.