judge_your_input()
{
if [ -z $1 ] ; then
echo "please input your want count dir!"
echo ""
echo "example:"
echo "./back_file ./"
echo "like this example"
echo ""
exit
fi
}
judge_your_input $1
C_file_linescount=$(find $1 -name "*.c" |xargs cat|grep -v ^$|wc -l)
CPP_file_linescount=$(find $1 -name "*.cpp" |xargs cat|grep -v ^$|wc -l)
INCLUDE_file_linescount=$(find $1 -name "*.h" |xargs cat|grep -v ^$|wc -l)
UI_file_linescount=$(find $1 -name "*.ui" |xargs cat|grep -v ^$|wc -l)
QSS_file_linescount=$(find $1 -name "*.qss" |xargs cat|grep -v ^$|wc -l)
JAVA_file_linescount=$(find $1 -name "*.java" |xargs cat|grep -v ^$|wc -l)
echo "c file count = "$C_file_linescount
echo "cpp file count = "$CPP_file_linescount
echo "inc file count = "$INCLUDE_file_linescount
echo "ui file count = "$UI_file_linescount
echo "qss file count = "$QSS_file_linescount
echo "java file count = "$JAVA_file_linescount
total=$[$C_file_linescount+$CPP_file_linescount+$INCLUDE_file_linescount+$UI_file_linescount+$QSS_file_linescount+$JAVA_file_linescount]
echo "The total = "$total
这是一个我根据网上Linux 源码计数改良后完成的一个shell 脚本
它可以对你指定目录下的源码进行计数, 并且不记录空行数。我这里只记录了 *.c *.cpp 等我自己常用的源码类型。你可以对记录源码类型进行修改。
运行方法为:
./linescount.sh ./
输出为:
c file count = 1832
cpp file count = 4726
inc file count = 1736
ui file count = 1715
qss file count = 3379
java file count = 0
The total = 13388
所以可以看到目前我写的源码总共有 13388 行。