前言
工作中时常有统计数据行和代码行的需求,虽然能依次打开每个文件数一下,但是这样操作效率太低了,如果是在linux环境中,可以使用一个常用的命令 wc
,一起记录一下常见的用法吧。
wc命令
wc
命令,(全称water closet,洗手间,哦,错了),全称word count?我也没找到,作用就是输出每个文件包含的行数、单词数和字节数,这三项是基础信息也是最常用的信息,此外它还可以输出文件中字符数量、输出文件中最长行的长度。
使用方法非常简单,直接在命令末尾添加文件名就行了
$ wc README.md
35 60 2460 README.md
上面的信息显示,README.md文件中包含25行内容,存在60个单词,共有2460个字节,可能是因为该文件中包含中文,所以单词数统计不太准确。
常用选项
该命令各选项含义如下:
-
- l
: 统计行数 -
- w
: 统计字数 -
- c
:统计字节数 -
- m
:统计字符数 -
- L
:统计最长行的长度
其中 - l
使我们统计行数的利器
统计文件行数
wc
命令搭配一些其他的命令能更方便的完成统计工作
统计1个文件行数
$ wc -l README.md
35 README.md
统计2个文件行数
wc
命令后名跟多个文件名时会打印出每个文件的行数,并且在最后一行显示所有文件总行数
$ wc -l README.md test.txt
35 README.md
3 test.txt
38 total
统计当前目录下python代码文件数量
$ find ./ -name "*.py" | wc -l
317
统计当前目录下python代码文件行数
$ find ./ -name "*.py" | xargs cat | wc -l
38538
统计当前目录下python代码文件非空行数
$ find ./ -name "*.py" | xargs cat | grep -v ^$ | wc -l
35320
实现的方式就是在输出文件内容的过程中过滤掉空行,但我认为统计代码行数时不应该过滤空行,适当的留白也是优秀代码的一部分
统计当前目录下2种代码文件的总行数
一个项目中使用的代码往往不止一种,所以在统计代码行数时要考虑多种代码文件,可以写多个-name
选项或者使用正则表达式文章来源:https://www.toymoban.com/news/detail-418445.html
$ find ./ -regex '.*\.\(py\|h\)' | xargs cat | wc -l
39795
$ find ./ -regextype posix-extended -regex '.*\.(py|h)' | xargs cat | wc -l
39795
$ find ./ -name "*.py" -o -name "*.h" | xargs cat | wc -l
39795
总结
-
wc
命令是用来查询文件行数的核心命令,不加选项时默认输出文件行数、单词数、字节数 -
wc
命令配合find
、xargs
、cat
等命令可以统计出目录内指定类型文件的总行数 -
find
查找多个文件的常用写法find ./ -regex '.*\.\(py\|h\)'
或find ./ -name "*.py" -o -name "*.h"
- 查项目全部代码量终极大招:
find ./ -regex '.*\.\(py\|lua\|go\|h\|hpp\|cpp\|c\|cc\)' | xargs cat | wc -l
确实挺难的,再坚持一下~文章来源地址https://www.toymoban.com/news/detail-418445.html
到了这里,关于linux环境下统计目录下所有文件的行数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!