本文概览:统计代码的行数,并且介绍了find和xargs
1 统计代码行数
1. 统计代码函数
(1)统计所有行
1 |
find . -name '*.java' | xargs wc -l |grep total |
(2)不包括空行
1 |
find . -name "*.java"|xargs cat|grep -v ^$|wc -l |
2. 统计函数最多的代码文件
1 |
find . -name '*.java' | xargs wc -l | sort -rn |
2 find
1. 按名字查询
1 |
find . -name '*.java' |
2. 按照权限查找
1 |
find . -perm 755 |
3. 按照用户名查找
1 |
find . -user wuzhonghu |
4. 按照类型进行查找
1 |
find . -type f |
-type 是查找某一类型的文件,诸如:
- b – 块设备文件。
- d – 目录。
- c – 字符设备文件。
- p – 管道文件。
- l – 符号链接文件。
- f – 普通文件。
5. 按照大小进行查找
如下在当前目录下查找文件长度大于1 M字节的文件
1 |
find . -size +1000000c –print |
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
3 xargs
引入这个命令作用:是由于很多命令不支持|管道来传递参数。如下:通过如下命令查找文件
1 |
find . -name "*.java" |
统计上面的每一个文件的行数,如果写成
1 |
find . -name "*.java" | wc- l |
此时统计的是find的查找文件个数。所以可以说wc -l 无法把通道传来的数据变成一个一个的参数,此时就引入了xargs
1 |
find . -name "*.java" | xargs wc -l |
此时xargs 将通道传来的值都变成一个一个的参数传给了wc -l 来统计,结果为
55 ./src/test/java/com/shell/ShellTest.java
111 ./src/test/java/com/trans/TransConfirmFileExportTest.java
38 ./src/test/java/com/trans/TransConfirmHeadTestModel.java
(全文完)