Linux统计代码行数
在日常运维工作中,会碰到对一项项目下的代码行数进行统计的需求,下面对代码行数的统计方法进行梳理,以供参考。
1)最简单的是使用wc -l直接进行代码行数统计。(wc的几个参数的解释:-c 统计字节数;-l 统计行数;-w统计字数)
1)统计当前目录下的index.php文件的行数
[root@huanqiu_web1 ~]# cat index.php |wc -l
172)统计web目录下,js文件数量:
[root@huanqiu_web1 ~]# find web/ -name "*.js" |wc -l3)统计web目录下所有js文件代码行数:
[root@huanqiu_web1 ~]# find web/ -name "*.js" |xargs cat|wc -l 或 wc -l `find web/ -name "*.js"`|tail -n14)统计web目录下所有js文件代码行数,过滤了空行:
[root@huanqiu_web1 ~]# find web/ -name "*.js" |xargs cat|grep -v ^$|wc -l5)统计web目录下所有js文件代码行数。过滤注释行
[root@huanqiu_web1 ~]# find web/ -name "*.js" |xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l
2)使用find命令统计当前目录下php脚本文件的行数
[root@huanqiu_web1 main]# find . -name '*.php' | xargs wc -l
3)参考一个line-counter的工具
获取这个工具
[root@huanqiu_web1 main]# pip install line-counter
使用”line”命令可以获取当前目录下的文件与行数统计,效果如下:
[root@huanqiu_web1 main]# line
Search in /home/www/vote/
file count: 16207
line count: 3785977
如果想看到更细节一些的信息,使用”line -d”命令
[root@huanqiu_web1 main]# line -d
Search in /home/www/main/
31cms/Lib/Action/BackAction.class.php 37
31cms/Lib/Action/BaseAction.class.php 293
31cms/Lib/Action/Home/AdmaAction.class.php 18
31cms/Lib/Action/Home/DataAction.class.php 99
.......
4)使用color工具
CLOC -- Count Lines of Code
可能大家都知道用 `wc -l` 命令进行代码行数统计,但是它会将代码中的注释、空行所占用的文本行都统计在内。如果想查看一个 tar 包或一个项目目录中“实际”的代码行数并且不愿意自己去写一个脚本来做此类工作,那么可以考虑使用 cloc。
cloc 是一个 perl 脚本,它可以统计很多种编程语言的代码文件中的空行、注释以及实际的代 码行数。下载最新版的color
下载地址:https://fossies.org/linux/privat/cloc-1.64.tar.gz/cloc-1.64/cloc
百度云盘下载地址:https://pan.baidu.com/s/1o7B1vyq安装cloc (mac环境下直接使用brew install cloc安装)
[root@huanqiu_web1 ~]# wget https://fossies.org/linux/privat/cloc-1.72.tar.gz
[root@huanqiu_web1 ~]# tar -zvxf cloc-1.72.tar.gz
[root@huanqiu_web1 ~]# cd cloc-1.72/
[root@huanqiu_web1 cloc-1.72]# make install
[root@huanqiu_web1 cloc-1.72]# ls
cloc LICENSE README.md sqlite_formatter tests Unix然后就可以直接使用cloc命令统计代码行数了。
比如统计/home/www/main下的代码行数
[root@huanqiu_web1 cloc-1.72]# ./cloc /home/www/main8098 text files.3770 unique files.
Complex regular subexpression recursion limit (32766) exceeded at ./cloc line 9262.
Complex regular subexpression recursion limit (32766) exceeded at ./cloc line 9262.
Complex regular subexpression recursion limit (32766) exceeded at ./cloc line 9262.4671 files ignored.github.com/AlDanial/cloc v 1.72 T=39.32 s (89.5 files/s, 23469.5 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
PHP 2320 51059 127551 378887
JavaScript 520 23226 23625 156244
CSS 429 15131 3098 113634
HTML 131 2023 415 14150
SQL 71 326 392 9853
Stylus 1 254 6 931
.........
JSON 1 0 0 25
make 2 3 0 15
INI 2 18 64 13
Pascal 1 6 119 2
-------------------------------------------------------------------------------
SUM: 3519 92201 155315 675403
-------------------------------------------------------------------------------统计压缩包代码行数。比如统计/usr/local/src下的mysql-5.6.34.tar.gz压缩包的代码行数
[root@huanqiu_web1 cloc-1.72]# ./cloc /usr/local/src/mysql-5.6.34.tar.gz14680 text files.13866 unique files. 10255 files ignored.github.com/AlDanial/cloc v 1.72 T=86.00 s (51.5 files/s, 29614.3 lines/s)
---------------------------------------------------------------------------------------
Language files blank comment code
---------------------------------------------------------------------------------------
C++ 1161 188519 214211 944511
C 517 36553 40459 458406
C/C++ Header 1389 51498 114913 206832
Java 612 13120 19048 54595
Pascal 103 8820 13805 43968
Perl 141 9513 6423 31054
Bourne Shell 142 4970 5671 27393
...........
lex 3 219 102 524
dtrace 9 96 10 456
Prolog 1 9 40 447
Windows Message File 2 4 17 12
Visual Basic 1 0 0 12
---------------------------------------------------------------------------------------
SUM: 4433 318404 422680 1805749
---------------------------------------------------------------------------------------对比压缩包代码差异。
[root@huanqiu_web1 cloc-1.72]# ./cloc --diff /usr/local/src/keepalived-1.3.5.tar.gz /usr/local/src/mysql-5.6.34.tar.gz
[root@LVS_Backup cloc-1.72]# ./cloc --diff /usr/local/src/keepalived-1.3.5.tar.gz /usr/local/src/mysql-5.6.34.tar.gz
257 text files.
14680 text files.
9565 files ignored. github.com/AlDanial/cloc v 1.72 T=84.00 s (0.0 files/s, 0.0 lines/s)
---------------------------------------------------------------------------------------
Language files blank comment code
---------------------------------------------------------------------------------------
CSS
same 0 0 0 0
modified 0 0 0 0
added 0 0 0 0
removed 1 37 0 141
m4
........
---------------------------------------------------------------------------------------
SUM:
same 0 0 1 1
modified 1 0 30 36
added 4432 318390 422649 1805712
removed 170 7865 8579 47591
---------------------------------------------------------------------------------------
可以使用awk直接对一个文件内的数字进行求和
[root@huanqiu ~]# cat a.txt
123
1233
44
55
66
77
88
99
[root@huanqiu ~]# awk 'BEGIN{sum=0}{sum+=$0}END{print sum;}' a.txt
1785
shell下多个数求和的几种写法:
1)
[root@huanqiu ~]# cat sum.sh
#!/bin/bash
a=5
b=10
c=50
d=100
f=$[ $a+$b+$c+$d ]
echo ${f}
[root@huanqiu ~]# chmod 755 sum.sh
[root@huanqiu ~]# sh sum.sh
1652)
[root@huanqiu ~]# cat sum.sh
#!/bin/bash
a=5
b=10
c=50
d=100
let "f=a+b+c+d"
echo ${f}
[root@huanqiu ~]# sh sum.sh
1653)
[root@huanqiu ~]# cat sum.sh
#!/bin/bash
a=5
b=10
c=50
d=100
((f=a+b+c+d))
echo ${f}
[root@huanqiu ~]# sh sum.sh
165
Linux统计代码行数相关推荐
- Linux 统计代码行数
统计文件行数(单个文件): wc -l file 例如: homer@ubuntu:~/workspace/android/game$ wc -l LGameAndroid2DActivity.jav ...
- Linux 统计代码行数命令
1.统计当前目录下,java文件数量: find . -name "*.java" |wc -l 2.统计当前目录下,所有java文件行数: find . -name " ...
- linux命令统计文件行数据库,wc命令--Linux统计文件行数
语法:wc [选项] 文件- 说明:该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给出所有指定文件的总统计数.字是由空格字符区分开的最大字符串. 该命令各选 ...
- linux代码行数统计工具,统计代码行数工具 用golang实现
首先:修改conf文件,配置要查找什么后缀的文件代码行数 使用方法:countcodeliine filename or nothing(计算可执行程序所在目录) 实现功能: 1,统计代码行数 2,可 ...
- 统计代码行数的方法梳理
在日常运维工作中,会碰到对一项项目下的代码行数进行统计的需求,下面对代码行数的统计方法进行梳理,以供参考. 1)最简单的是使用wc -l直接进行代码行数统计.(wc的几个参数的解释:-c 统计字节数: ...
- 在项目开发中统计代码行数的6种方式
文章目录 一.使用find和wc命令统计代码行数 进行参数的过滤筛选 命令参数简要说明 二.PowerShell工具统计代码行数 条件过滤 输出所有文件的行数 PowerShell相关命令的简要说明 ...
- webstorm代码行数统计_【Rust每周一库】Tokei 统计代码行数等信息的实用工具
Tokei是一个按语言统计代码行数等统计信息的工具.其实这些信息还是非常有用的,首先程序猿可以用它来估计别人的实力或者观察自己实力成长的速度(神马,行数论英雄么?).其次,管理人员可以用它来估计工程的 ...
- 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 ...
最新文章
- Activity的launchMode和任务栈小结
- 初一模拟赛总结(2019.4.13)
- JavaScript数据结构和算法简述——数组
- ehcache 的 diskStore path
- 【笔试/面试】—— 不使用大于、小于、if 语句,实现 max 宏
- php安装扩展的几种方法
- postman下载安装和基础使用教程(官网)
- 合宙 4G模块Air720D Mini PCI-E 开发教程
- Java实现邮件抓取(亲测126,163,新浪都可以抓取到)
- Unix平台下的常用命令技巧之资源与性能
- 《胡雪岩全传》高阳——读后感
- 经典语录总结:识人篇
- 哪个网站的电子书最多?
- 电脑保护眼睛的背景颜色
- [渝粤教育] 西南科技大学 统计学原理 在线考试复习资料(2)
- 抚躬自问,我该怎样总结我的Q3?
- history.pushState()
- 2022-2028全球与中国篮球计时系统市场现状及未来发展趋势
- 网络面试题:字节序?网络字节序和主机字节序?
- 鸿蒙os现在好用吗,全球首批!升级使用鸿蒙OS真实反馈评价出炉:差评/好评都很真实...