OT: "find" command with branch/pipe

Harald Hanche-Olsen hanche at math.ntnu.no
Mon Nov 8 03:50:43 PST 2010


+ Andre Massing <massing at simula.no>:

> I am struggling with the find command, trying to find all files ending
> with .h or .cpp in a certain directory.
> On my former linux machine the following worked as intended:
> find   ./ -regextype grep -regex '.*\.\(\(h\)\|\(cpp\)'
> but Apple's find command does neither know the regextype option nor
> does it work as expected if I omit it. I tried already different kind
> of
> grouping and escaping but without success. Has anybody an idea how I
> can get find to work as intended?

Have you checked the man page for Apple's find, notably the -E flag
(and the resulting reference to re_format(7))?

Anyhow, for your particular need, using regexps is overkill.

find . \( -name '*.h' -o -name '*.cpp' \)

will work, and is easier both to type and to read.
You may skip \( and \) in the above usage, but they are needed if you
follow the search term with -print0 or stuff like that.

- Harald


More information about the macports-users mailing list