采用shell脚本统计代码的行数
刚毕业那会儿有一次去台湾公司面试,我问多行代码怎么写。我从来没有想过这个问题,粗略计算,。惊叹:大概几十万行不行。
最近整理资料,看着eclipse左边全面上市,我觉得这个东西。代码共同拥有的行倒底总数?——windows下要么找工具。要么编程序。又想到linux里的命令统计非常方便,于是打算用个命令来完毕。
可分析来分析去,恐怕一行命令是搞不定的——又涉及递归查找,又涉及指定文件类型,又涉及对文件全路径进行操作。终于还是用了一段shell脚本才达到目的。
#!/bin/bash declare -i filenumber=0
declare -i linenumber=0 list_alldir(){
for file in `ls -a $1`
do
if [ x"$file" != x"." -a x"$file" != x".." ];then
if [ -d "$1/$file" ];then
list_alldir "$1/$file"
else
if [[ $file =~ \.java$ ]]; then
echo "$1/$file"
filenumber=$filenumber+1
linenumber=$linenumber+`cat "$1/$file"|wc -l`
fi
fi
fi
done
} 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脚本统计代码的行数的更多相关文章
- Python 统计代码的行数,Python脚本 统计代码
# coding=utf-8 import os import time # 需要统计的文件夹或者文件,这是在windows下运行的,如果使用Linux系统可以使用 basedir = '/app/l ...
- C++统计代码注释行数 & 有效代码行数 & 代码注释公共行 & 函数个数
问题来源,在14年的暑假的一次小项目当中遇到了一个这样的问题,要求统计C++代码的注释行数,有效代码行数,代码注释公共行数,以及函数个数. 下面稍微解释一下问题, 1)注释行数:指有注释的行,包括有代 ...
- Shell脚本统计文件行数
Shell脚本统计文件行数 转自 http://www.jb51.net/article/61943.htm 示例:row_count.sh文件 awk '{print NR}' row_cou ...
- linux 脚本统计代码行数
由于实际需求,需要统计开源产品的代码行数,so,以下命令统计*.c的行数. .h,.java .同理 find . -name *.c|xargs wc -l
- Shell 统计文件的行数
目录 统计文件的行数 题目 题解-awk 题解-wc 题解sed 统计文件的行数 题目 写一个 bash脚本以输出一个文本文件 nowcoder.txt中的行数 示例: 假设 nowcoder.txt ...
- 通过shell脚本实现代码自动化部署
通过shell脚本实现代码自动化部署 一.传统部署方式及优缺点 1.传统部署方式 (1)纯手工scp (2)纯手工登录git pull.svn update (3)纯手工xftp往上拉 (4)开发给打 ...
- wc 统计文件的行数,字数,字符
格式:wc 参数 文件 默认统计文件的行数,字数,字符. -l 统计有多少行数 -c 统计有多少个字节 -m 统计有多少个字符 -w 统计有多少个字数
- wc 统计文件的行数
1.命令功能 wc 统计文件的行数,单词和字节数 2.语法格式 wc option file wc option --files0-from=F 参数说明 参数 参数说明 -c 统计字节数 - ...
- Linux shell 脚本攻略之统计文件的行数、单词数和字符数
摘自:<Linux shell 脚本攻略>
随机推荐
- 染色法判断是否是二分图 hdu2444
用染色法判断二分图是这样进行的,随便选择一个点, 1.把它染成黑色,然后将它相邻的点染成白色,然后入队列 2.出队列,与这个点相邻的点染成相反的颜色 根据二分图的特性,相同集合内的点颜色是相同的,即 ...
- 《Effective C++ 》学习笔记——规定10
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
- Android Google Map v2具体解释:开发环境配置
Android Google Map v2具体解释:开发环境配置 --转载请注明出处:coder-pig 说在前面: 说到地 ...
- Cocos-2dx-Lua中使用Luaj的完整示例(转)
如何使用Luaj进行java与Lua之间的交互调用 一.主要分为两个大步骤,Lua工程的修改,android工程的修改 二.工程环境 开发工具:Cocos-Code-IDE Lua版本 : Lua 5 ...
- go语言实现遍历目录,及查找特定的文件类型
// filelist.go package main import ( //"flag" "fmt" "os" "path/fi ...
- Echache整合Spring缓存实例讲解(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要介绍了EhCache,并通过整合Spring给出了一个使用实例. 一.EhCac ...
- CentOS6.2安装memcache
一,安装libevent # cd /tmp # wget http://www.monkey.org/~provos/libevent-1.3.tar.gz # tar -zxvf libevent ...
- xhost和XServer相关概念汇总
1.xhost 控制什么人可以访问当前主机上的增强 X-Windows.语法:xhost [ + | - ] [ Name ] 2.xhost 是用来控制X server访问权限的.通常当你从host ...
- 在Linux上安装Hadoop
先决条件: Hadoop是用JAVA写的,所以首先要安装Java.在Ubuntu上安装JDK见:http://blog.csdn.net/microfhu/article/details/766739 ...
- OCP解决问题053-16 MEMORY_TARGET
16.Setting which of the following initialization parameters enables Automatic Memory Management? A. ...