We've got a PHP application and want to count all the lines of code under a specific directory and its subdirectories. We don't need to ignore comments, as we're just trying to get a rough idea.
wc -l *.php
That command works great within a given directory, but ignores subdirectories. I was thinking this might work, but it is returning 74, which is definitely not the case...
find . -name '*.php' | wc -l
What's the correct syntax to feed in all the files?
find . -name '*.php' | xargs wc -l
The SLOCCount tool may help as well.
It'll give an accurate source lines of code count for whatever hierarchy you point it at, as well as some additional stats.
find . -name '*.php' | xargs wc -l | sort
For another one-liner:
( find ./ -name '*.php' -print0 | xargs -0 cat ) | wc -l
works on names with spaces, only outputs one number.