利用shell脚本统计代码行数
刚毕业那会儿有一次去一家台湾公司面试,问我写过多少行代码。从没想过这个问题,粗略算了算,随口说道:大概几十万行吧。最近整理资料,看着eclipse左边满满的列表,想起了这个事。倒底总共有多少行代码?——这事如果在windows下要么找工具,要么编程序。又想到linux里的命令统计很方便,于是打算用个命令来完成。可分析来分析去,恐怕一行命令是搞不定的——又涉及递归查找,又涉及指定文件类型,又涉及对文件全路径进行操作。最终还是用了一段shell脚本才达到目的。
#!/bin/bash
declare -i filenumber=0
declare -i linenumber=0
list_alldir(){for file in `ls -a $1`doif [ x"$file" != x"." -a x"$file" != x".." ];thenif [ -d "$1/$file" ];thenlist_alldir "$1/$file"else
if [[ $file =~ \.java$ ]]; then
echo "$1/$file"
filenumber=$filenumber+1
linenumber=$linenumber+`cat "$1/$file"|wc -l`
fififidone
}
if [ "$1" = "" ];then
arg="."
else
arg="./"$1
fi
list_alldir $arg
echo "There are $filenumber java files under directory: $arg"
echo "--total code lines are: $linenumber"
使用方法:保存成sh文件,授予执行权限。执行./xxx.sh src ,可带参数。不带参数是统计当前目录下所有java文件,带参数是统计指定目录下的所有java文件。参数只能指定到目录一级,不能到文件。
还可以写的更通用一些,比如统计任意类型的文件,懒得改了。统计结果大部分项目在几千至几万行之间,整个jdk7也才260多万行源码,还包括那么多注释行呢。当年的回答确实有点不知天高地厚了。
利用shell脚本统计代码行数相关推荐
- shell 命令统计代码行数
分享一个统计代码行的shell命令: find . "(" -name ".java" -or -name ".html" -or -nam ...
- linux shell 递归统计代码行数
一句话: find /path -name '*.cpp' |xargs wc -l 转载于:https://www.cnblogs.com/songbingyu/p/4047163.html
- 统计代码行数的方法梳理
在日常运维工作中,会碰到对一项项目下的代码行数进行统计的需求,下面对代码行数的统计方法进行梳理,以供参考. 1)最简单的是使用wc -l直接进行代码行数统计.(wc的几个参数的解释:-c 统计字节数: ...
- webstorm代码行数统计_【Rust每周一库】Tokei 统计代码行数等信息的实用工具
Tokei是一个按语言统计代码行数等统计信息的工具.其实这些信息还是非常有用的,首先程序猿可以用它来估计别人的实力或者观察自己实力成长的速度(神马,行数论英雄么?).其次,管理人员可以用它来估计工程的 ...
- phpstrom查看代码总行数_PHP统计代码行数的小代码
本文实例为大家分享了PHP统计代码行数的具体代码,供大家参考,具体内容如下 想统计一下项目中一共有多少行代码,结果没找到什么好的工具,就自己写了一个. 效率不怎么样. /** * Created by ...
- 在项目开发中统计代码行数的6种方式
文章目录 一.使用find和wc命令统计代码行数 进行参数的过滤筛选 命令参数简要说明 二.PowerShell工具统计代码行数 条件过滤 输出所有文件的行数 PowerShell相关命令的简要说明 ...
- vscode统计代码行数,前端开发配置、快捷键使用
1.统计代码行数 使用场景是项目年终统计行数. 实现:在需要统计得文件夹右键"在文件夹中查找" ,后输入筛选得正则表达式 ^b*[^:b#/]+.*$ (注意右边小图标都点亮) 这 ...
- Eclipse统计代码行数
开发过程中,经常需要统计代码行数,这时可以通过Eclipse的Search功能来实现. 步骤: 1.在Package Explorer中选中需要统计的包: 2.单击菜单Search-->File ...
- python计算营业额代码_python计算营业额的代码_python 统计代码行数简单实例
python 统计代码行数简单实例 送测的时候,发现需要统计代码行数 于是写了个小程序统计自己的代码的行数. #calclate_code_lines.py import os def afileli ...
最新文章
- keras dense sigmoid_tf.keras一个存在自定义层时加载模型时的小坑
- 关于Hibernate异常:只进 ResultSet 不支持请求的操作
- 【Linux】开源分布式存储系统:GlusterFS
- (十三)洞悉linux下的Netfilteramp;iptables:为防火墙增添功能模块【实战】
- ToLookup 和 GroupBy 到底有什么不同?
- Android插件化开发基础之App如何动态加载类
- 如何在html网页中嵌入一段语法高亮的代码?_工程师私藏的代码比较工具,好用!...
- 计算机科学素养大赛,第六届全国大学生计算机应用能力与信息素养大赛圆满结束...
- BZOJ2707: [SDOI2012]走迷宫
- An Add-in Bookmark for visual studio 2005
- 《微观经济学》第三章相互依存性与贸易的好处
- 在线购物系统-面对对象设计
- elasticsearch搜索IK分词器实现单个字搜索
- PySwitch - Python 环境快速切换
- 全角半角英文字母及符号
- exlc表格怎么换行_在Excel中如何换行?Excel表格换行快捷键是什么?
- OpenCV-Python 中文教程15——OpenCV 中的轮廓
- C语言即是素数又是回文数,急!(C语言)从给出的数据中找出既是回文数又是素数的数……...
- 07Linux打包解压文件-Exiting with failure status due to previous errors
- 51自学网java壁虎_我要自学网JAVA基础4-26日历补充壁虎老师的完整代码
热门文章
- Linux apache源码安装自定义Server
- Ubuntu安装Chrome及hosts修改
- Web开发工具包收藏
- iis vue history 配置_Vue实战——vueRouter路由的添加与配置
- 错误信息 c语言实现_全国计算机等级考试二级C语言
- c#对象集合去重_C# List 对象去重
- 6-3 求链表的倒数第m个元素
- 退休当月要干到月底吗_在一线城市交社保那么多年,退休后到底在哪领养老金,要回老家吗?...
- 查询手机号段对应地区编码_想知道海关统计数据吗?这里有详细的查询教程
- 将数组按指定大小分组