#! /usr/bin/bash
extensions="c h"
excluded="./lib/* ./platform/win32/*"
lines=0
is_excluded()
{
for pattern in $excluded; do
if [ $pattern = $1 ]; then
echo YES
return
fi
done
echo NO
}
for ex in $extensions; do
for src in `find . -name "*.$ex"`; do
if [ `is_excluded $src` = "NO" ]; then
echo $src
lines=$((lines+`wc -l $src|awk '{print $1}'`))
fi
done
done
echo "total lines: $lines"
有shell没有?用wc命令啊。比如我统计我的c++项目时:
这样将 .h和.cpp文件的行数之和统计出来了。
如果要统计当前目录下包括子目录下的c文件或h文件的行数之和, 用下列的脚本试试:
这下没有问题了,首先在 extensions 处设置你的要统计的文件后缀,如果有多个后缀,用空格分隔,然后在工程目录下运行你的脚本。
如果想排除某个子目录下的文件,可以设置脚本中的excluded变量,设置的时候多个模式用空格分开,看脚本中的例子。符合excluded中某个模式的文件将不被统计。