首页 > 其他 > 详细

代码量统计脚本

时间:2014-03-18 17:45:49      阅读:592      评论:0      收藏:0      [点我收藏+]

有时候,想统计下自己项目的代码量,通过与之前的版本相比,可以找出增加、删除、修改的代码量。本文就是为了完成这样的任务。

用到的shell命令:

diff:找出两个版本之间文件的差异

awk:分析diff结果,计算总的代码量

 

codediff.sh

#!/bin/sh
#!/bin/awk
function help()
{
	clear
	echo "Usage:"
	echo "./sh CurrentDir OriginalDir"
	exit;
}
if [ $# -ne 2 ]
then
	help
fi

diffres=$1"_"$2".diff"
diff -PN $1 $2 | sed -n -e ‘/^[[:digit:]]/p‘ > $diffres
cat $diffres | awk ‘BEGIN{
	FS="\n"
	x=1
	an=0
	dn=0
	cn=0
	msg=""
}

/a/{
	msg=substr($1,index($1,"a")+1)
	after=substr(msg,index(msg,",")+1)
        before=substr(msg,0,index(msg,",")-1)
        if(index(msg,",") == 0)
        {
                before=after
        }
        an=an+after-before+1	
}
/c/{
	msg=substr($1,0,index($1,"c")-1)
	after=substr(msg,index(msg,",")+1)
	before=substr(msg,0,index(msg,",")-1)
	if(index(msg,",") == 0)
	{
		before=after
	}
	cn=cn+after-before+1
}
/d/{
	msg=substr($1,0,index($1,"d")-1)
	after=substr(msg,index(msg,",")+1)
        before=substr(msg,0,index(msg,",")-1)
        if(index(msg,",") == 0)
        {
                before=after
        }
        dn=dn+after-before+1
}

END{
	print "add number:   "an"\n"
	print "delete number :"dn"\n"
	print "modify number :"cn"\n"
}‘

rm -rf $diffres


脚本分析:

diff -PN $1 $2 | sed -n -e ‘/^[[:digit:]]/p‘ > $diffres

的结果文件类似于:

0a1,259
0a1,16
1,109d0
1,13d0
9a10,12
17,19d19
2,4c2,3
7c6
16c15
22,23c21,22
1,61d0

a是增加,d是删除,c是修改

下面的awk脚本主要是执行这个文件的分析,/a/分析新增的代码,即a之后的数字差值加1,同理,/c/和/d/完成相同的功能,只是,分析的是c或d之前的两个数字差加1。

 

该脚本在统计的时候并没有除去注释,如果想除去注释后再统计的话,可以参考http://blog.csdn.net/pngynghay/article/details/21443199在连接博客中,有除去注释的命令,直接拿过来用用就行了。

代码量统计脚本,布布扣,bubuko.com

代码量统计脚本

原文:http://blog.csdn.net/pngynghay/article/details/21467057

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!