Linux统计目录下所有文件的行数

时间:2021-09-29 17:26:58

这里提供两种方法来统计目录下所有文件的行数:

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