一、shell命令
1.代码行数统计
-
基本统计
find . -name "*.cpp"|xargs wc -l|grep "total"|awk '{print $1}' find . -name "*.cpp"|xargs cat|wc -l
-
去空行
find . -name "*.java"|xargs cat|grep -v ^$|wc -l
说明:
上面的^$是正则表达式,^是以匹配开头,$是匹配结尾,所以^$是匹配一个空行。
-
去注释
find . -name "*.java"|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l
说明:
-
上面的^\s\/\/.$是正则表达式,其中^\s表明以空格(多个)开头,\/\/表明是//开头的注释,“.$”表明可能以“.”结尾
-
-
统计本文件夹下.h,.cpp,.sh三种类型的文件代码行数
find -name "*[.h|.cpp|.sh]" -type f | xargs cat | wc -l
2.git 统计
-
查看git上个人代码量
git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
-
统计每个人的增删行数
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
3.统计工具
-
cloc
CLOC是一个开源的基于perl开发的支持多种编程语言代码统计的命令行跨平台工具。
其有几大优势:
1. 该工具只是单个小文件,下载使用非常方便
2. 自动识别文件夹下面所有文件的语言,分门别类进行整理
3. 可以识别空行和注释
4. 可以统计压缩文件中的代码行(tar zip等)
也可直接apt install cloc安装使用。
cloc作为命令直接使用,可通过--help查看帮助
高阶定制使用参考
-
SourceConter
没用过