Does one of your filenames have a quote in it? Try something like this:
find . "(" -name "*.m" -or -name "*.h" ")" -print0 | xargs -0 wc -l
The -print0
argument tells find
to use the NULL character to terminate each name that it prints out. The -0
argument tells xargs
that its input tokens are NULL-terminated. This avoids issues with characters that otherwise would be treated as special, like quotes.