统计目录上C代码的总行数

统计目录下C代码的总行数
#!/bin/sh

#
# Line Counter
#
# Usage: lcnt dir suffix1, suffix2, suffix3 ...
#


v_dir="$1"
v_linenum=0

if [ $# = 0 ]; then
    echo "============================================="
    echo "Usage: lcnt dir suffix1 suffix2 suffix3 ...  "
    echo "Usage: lcnt dir                              "
    echo "============================================="
elif [ $# = 1 ]; then
    v_linenum=$(find $v_dir -type f | xargs -i cat {} | wc -l)
    echo "Total: "$v_linenum
else
    while [ "$2" != "" ]; do
        v_linenum=$(find $v_dir -type f -name "*$2" | xargs -i cat {} | wc -l)
        echo "*$2: "$v_linenum
        shift
    done
fi

exit 0

1 楼 robbin 2008-12-15  
find . -type f -iname "*.c" -exec cat {} \; | grep -v '^$' | wc -l


一行shell命令搞定
2 楼 steven-zhou 2008-12-15  
统计目录上C代码的总行数
3 楼 blankyao 2008-12-15  
robbin的简洁强悍
4 楼 arust 2008-12-24  
robbin 写道
find . -type f -iname "*.c" -exec cat {} \; | grep -v '^$' | wc -l


一行shell命令搞定


学习了统计目录上C代码的总行数
5 楼 pi1ot 2008-12-24  
-exec cat {}和直接|cat那个快?
另外grep -c也应该比grep |wc -l效率高一些
6 楼 mikeandmore 2008-12-24  
robbin 写道
find . -type f -iname "*.c" -exec cat {} \; | grep -v '^$' | wc -l


一行shell命令搞定

我经常
find . | grep ".c$" | xargs wc -l
还能看到每个文件多少行。。。