这里提供两种方法来统计目录下所有文件的行数:
1、结合使用find和wc:
find . -name '*.pl' | xargs wc -l
另外,此命令也可以改为:
( find ./ -name '*.pl' -print0 | xargs -0 cat ) | wc -l
使用-print0 是为了避免文件名有换行符等一些特殊字符
需要注意的是,wc是统计换行符,而不是统计行数,所以如果最后一行没有换行符是会被忽略的。
2、使用grep -c
为了避免wc可能会漏统计文件的最后一行,可以使用grep -c来统计,代码如下:
total=0
find /path -type f -name "*.php" | while read FILE; do
count=$(grep -c ^ < "$FILE")
echo "$FILE has $count lines"
let total=total+count
done
echo TOTAL LINES COUNTED: $total