求个代码量统计的脚本 [跨平台更欢迎,最好只用本地语言]

徐庆-neo 发布于 2013/08/05 08:39
阅读 432
收藏 0
针对本地某个工程对代码量统计,最好能限定语言、跨平台,尽量不要实用第三方语言

以下是问题补充:

@徐庆-neo:代码量要细节到:空白行、注释行、代码行等等 (2013/08/05 08:48)
加载中
0
ddatsh
ddatsh
毫无意义    
徐庆-neo
徐庆-neo
=. =
0
店长强力推荐
店长强力推荐
find ./ -name *.cpp | xargs wc -l  跨所有*nix 平台(windows上需要cygwin或migwin)  跨语言 只需要将*.cpp 改成你喜欢的语言后缀名  
徐庆-neo
徐庆-neo
恩,可是要获取空白行、注释行以及纯代码行就有些吃力了
0
专业打酱油
专业打酱油
当智商无法评判代码的好坏时,只能使用代码行数进行粗放的评判。
徐庆-neo
徐庆-neo
我就是用这个来看看每天自己的代码量,我可没说这是评价工作量的哦
0
徐庆-neo
徐庆-neo
折腾了个 linux 版本:
#!/bin/bash

for i in `find . -name '*.java'`; do
	empty=`grep '^$' $i | wc -l`
	comment=`grep -E '\s?/?[\*\/]' $i | wc -l`
	total=`cat $i | wc -l`
	src=$(( total - empty - comment ))

	psrc=$(( src * 100 / total ))
	pcomment=$(( comment * 100 / total ))

	printf "%5d %2d%%, %3d %2d%%" $src $psrc $comment $pcomment
	if [ $pcomment -lt 5 ]; then
		echo -e "\033[33;1m`wc $i`\033[0m"
	elif [ $psrc -lt 80 ]; then
		echo -e "\033[32;1m`wc $i`\033[0m"
	else
		wc $i
	fi
done
0
jingshishengxu
jingshishengxu
有现成的统计软件,干嘛要自己折腾这个
徐庆-neo
徐庆-neo
举个栗子~
0
徐庆-neo
徐庆-neo

好吧,再来个 Windows 版本,注释行没有统计,原生的findstr正则就是个鸡肋

@echo off

setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /s /b *.java') do (
	for /f "tokens=4 delims=: " %%j in ('find /v /n /c "" %%i') do (
		set total=%%j
		set /a src=0
		for /f "delims=" %%k in (%%i) do (
			set /a src+=1
		)
		set /a psrc=src * 100 / total
		echo %%i
		echo size: %%~zi, lines: !total!, src: !src! ^(!psrc!%%^)
	)
)

返回顶部
顶部