标签:style blog http color ar java sp 文件 数据
引:之前都太懒,没有及时把学到的知识总结到博客里。最近在学shell编程,正好作为养成写博客习惯的开端。平时我们都会遇到一个问题,写完一个项目后,想统计一下总的代码量,当代码文件很多时,一个个点开代码文件,然后把代码行数加起来是一件很费神的事。shell可以用短短几行代码就搞定这个问题。
一 shell源码(code_linage.sh):
1 #!/bin/bash 2 3 if [ $# -eq 1 ] && [ -d $1 ] 4 then 5 find $1 -type f -name "*.java" -print0 | xargs -0 wc -l 6 else 7 echo ‘wrong parameter‘ 8 fi
二 shell代码分析:
这个代码的功能是:统计一个文件夹中java代码的行数
第1行:虽然开头是#,但是这句并不是注释,它的含义是用/bin/bash来解释这一段脚本。
第2行:作用是判断是否只有一个参数,而且参数代表的是一个目录。$# 表示参数个数,要等于1;-d $1 是判断第一个参数是不是表示一个目录。
第5行:是这段代码的核心部分。这一行可以分成两部分,管道命令“|” 前面的find命令功能是查找出 $1(也即第一个参数)目录下所有的java文件。 -print0 表示将这些找到的文件名用 \0 分隔;“|” 后面的命令功能是将统计每一个文件的代码行数。xargs可以将标准输入数据转换成命令行参数,传给wc命令。-0 表示以 \0 为分隔符, wc -l 就是代码统计行数。
三 运行效果:
Html_parer5是一个java项目的文件夹,每一行前面的数字表示这个java文件的代码行数,后面是文件名,最后一行是总的代码量。
当然,如果想统计c代码,或各种其他代码的行数,可以修改下find命令中 -name 后面的匹配串即可。
标签:style blog http color ar java sp 文件 数据
原文地址:http://www.cnblogs.com/blues-harp/p/4046680.html