如何统计代码行数
来源:互联网 发布:淘宝店铺logo设计素材 编辑:程序博客网 时间:2024/05/21 07:04
如何统计代码行数
- linux下提供了很多实用工具,甚至在安卓上,都有移植的busybox包含这些工具。
- 根据KISS理念,这些工具的功能很单一。但这些工具组合起来,就可以很方面的统计代码量了。
统计代码行数
- 流程为:首先使用find命令找到所有后缀名符合规则的源代码文件,之后使用wc命令统计行数。文件数可能过多,为防止出错使用xargs命令分割参数列表,最后得到的结果可以使用sort排序
- 统计所有c源代码行数的命令:
find -name *.c | xargs wc -l |sort -r
。结果按照反序排列 find -name *.c | xargs wc -l |sort -k2
结果按照文件名排列- 如需统计c++代码,将
*.c
更改为*.cc
即可。如果c++使用cpp后缀名,改为*.cpp
用到的命令详解
find命令
- find命令递归搜索目录,若任一文件使表达式为真则放入结果
- 使用方法
find [path...] [expression]
- path指定需要寻找的目录范围,默认为当前目录
- expression通常为测试条件,返回true或false
-name pattern
文件名符合shell正则式-path pattern
文件路径名符合shell正则式-exec order {}
执行命令,若返回值为0则真- 例子:
find -name *.c
搜索后缀名为c的文件 - 例子:
find . -exec sleep {1}
每隔1s显示一个文件
wc命令
- wc为wordcount的缩写,用于统计文件
- 使用方法
wc [-lwc] filename
- l、w、c分别表示统计行数、单词数、字符数。默认为统计全部三者
- 例子:
wc -l file1 file2
统计两文件的行数
xargs命令
- xargs的功能是捕获管道中前一个命令的输出,建立分段参数表并执行另一个命令
- find命令如果产生的参数列太长,可以使用xargs命令每次只传递一部分参数,防止在部分系统上出现溢出错误
- xargs通常以空格或者换行符分割参数,
-0
选项可以保证参数列中含有空格、换行符等时分割正确 - 例子:
find /tmp -name core | xargs -0 /bin/rm -f
。把/tmp
文件夹下所有名称为core的文件传递给rm命令,强制删除。-0
选项可以保证正确处理文件名中含有换行或空格的情况。
sort命令
- sort用于对不同的文本进行排序,以行为单位
- 默认排序方式为升序,
-r
选项可以修改为降序排列 -n
选项按照字符表示的数字的值来排序,如1 2 10 20
没有开启此选项排序结果为1 10 2 20
-f
忽略大小写-t
设置列之间的分隔符,-k
指定按照第几列排序- 例子:
sort -n -f -k 2 test.txt
。将test.txt中的各行按照第二列排序,忽略大小写
重定向
- 行数统计结果可以存入文本文件中,命令行最后加上
> count.txt
即可 - 标准输入、输出、错误输出分别用0,1,2表示
- 输入重定向使用输入重定向运算符
<
,可以把文件中的内容作为程序的输入。例如测试代码时使用:./a.out < test.in
,test.in文件里面是程序的测试输入 - 输出重定向可以将程序的输出写入到文件中,使用输出重定向运算符
>
。- 例子:
ls 1>/dev/null 2>/dev/null
不显示输出和错误输出。1、2与>之间不能有空格 - 例子:
ls 2> &1> t.txt
将错误输出重定向到标准输出,而此时标准输出还未重定向,因此标准输出内容将写入t.txt,而错误输出仍留在屏幕上 - 例子:
ls 1> t.txt 2> &1
将标准输出和错误输出都写入t.txt
- 例子:
管道
- 管道使用
|
表示 - 功能为前一个命令的标准输出定向为第二个命令的标准输入
- 第二个命令必须能从标准输入中读取才行,如
ls
命令就不符合要求
2 0
- 如何统计代码行数
- 如何统计代码行数
- 如何统计Python代码行数
- C#如何统计代码行数
- Ubuntu下如何统计代码行数
- 如何统计整个项目的代码行数
- 如何在Eclipse统计代码行数
- 如何在Eclipse统计代码行数
- 如何在Windows下统计代码行数
- Visual Studio VS如何统计代码行数
- 统计代码行数代码
- 代码行数统计类
- 代码行数统计器
- 统计代码行数源码
- 统计代码行数
- 统计代码行数源码
- 代码行数统计工具
- 代码行数统计器
- 国内首个“进站充电”有轨电车在南京开通试运行
- 如何在eclipse下开发和运行hadoop程序。
- hdu 1040 2014731 As Easy As A+B
- Android+push+notification方案比较
- POJ2063_Investment(背包/完全背包)
- 如何统计代码行数
- C语言入门——C语言学习日志6
- nyoj 860 又见01背包 【另类01背包】
- 世界“最深、最净”暗物质实验室在中国锦屏扩建
- toj1205 Compound Words
- 经典背包问题 01背包+完全背包+多重背包
- java继承
- android 中“am profile” 命令的来龙去脉
- Codeforces Round #259 (Div. 2) D Little Pony and Harmony Chest