linux环境下统计目录下所有文件的行数

这篇具有很好参考价值的文章主要介绍了linux环境下统计目录下所有文件的行数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

工作中时常有统计数据行和代码行的需求,虽然能依次打开每个文件数一下,但是这样操作效率太低了,如果是在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选项或者使用正则表达式

$ 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 命令配合 findxargscat 等命令可以统计出目录内指定类型文件的总行数
  • 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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • shell 脚本统计 http 文件服务器下指定目录及其子目录下所有文件的大小

    shell脚本如下: 首先 vi calculate_size.sh 写入下入内容 执行 sh calculate_size.sh http://example.com/some/dir/ 即可统计 http 文件服务器http://example.com/some/dir/ 中 dir 目录及其子目录下所有文件的大小。

    2024年02月15日
    浏览(50)
  • linux统计目录文件数量

    1、当前文件夹及子文件夹的数量:         ls -lR | grep \\\"^d\\\" | wc -l 2、当前文件及子目录文件夹的数量:         ls -lR | grep \\\"^-\\\" | wc -l 3、当前目录某文件的数量:         find . -name filename | wc -l 4、当前目录下所有目录文件的list及数量:         find . -name \\\"*\\\" list.txt     

    2024年02月08日
    浏览(38)
  • linux查看当前目录及子目录所有文件

    1.查看当前目录及子目录所有文件: du -ah 执行结果如下: 2.查看当前目录及子目录所有文件,并根据大小排序: du -a | sort -n 执行结果如下:(单位:字节) 整理完毕,完结撒花~

    2024年02月16日
    浏览(29)
  • Linux对一个目录及其子目录所有文件添加权限

    chmod是一个改变用户拥有指定文件的权限的命令.r:只读,w:写,x执行.也可以用数字 -rw------- (600) -- 只有属主有读写权限。   -rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。   -rwx------ (700) -- 只有属主有读、写、执行权限。   -rwxr-xr-x (755) -- 

    2024年02月02日
    浏览(82)
  • Linux 统计目录下文件数量的方法

    1、统计当前目录下文件的个数(不包括目录) 2、统计当前目录下文件的个数(包括子目录) 3、查看某目录下文件夹(目录)的个数(包括子目录) 4、统计当前文件夹下叫某某的文件的数量 5、统计当前文件夹下指定类型的文件的数量 例如这里需要找 js 文件的数量:

    2024年02月13日
    浏览(42)
  • 【文件IO】Linux 文件操作(一) —— 遍历指定目录下的所有文件

    目录 一、访问目录相关函数 1、打开/访问目录 (opendir / fdopendir) 2、读取目录内容 (readdir) 3、关闭目录 (closedir) 二、遍历指定目录下的所有文件 opendir / fdopendir 函数的作用是访问指定路径的目录,函数声明如下: (1) opendir opendir 函数是通过用户提供的目录路径来访问目录, 参

    2024年02月04日
    浏览(48)
  • 【linux】搜索所有目录和子目录下的包含.git的文件并删除

    在Linux系统中,要搜索所有目录和子目录下的包含`.git`的文件,可以使用`find`命令。`find`命令允许指定路径、表达式和操作来查找文件。 以下是使用`find`命令搜索包含`.git`的文件的方法: 1. 基本搜索:    find /path/to/search -type f -name \\\"*.git*\\\"    这将在指定的路径下搜索所有扩

    2024年03月22日
    浏览(75)
  • Linux 下使用 tar 命令打包指定目录下的所有文件,不包含路径方法

    一,问题描述 例如:需要打包/data/android_data/VMRK02ejyijtyww20 文件夹到/data/testtar/目录下 一般我们使用命令如下命令 当我们解VMRK02ejyijtyww20.tar压缩包后发现,把路径也打包进去了, 即/data/android_data/VMRK02ejyijtyww20;而大多数情况,我们解压后只需要的是VMRK02ejyijtyww20文件夹 二、打包

    2024年02月16日
    浏览(48)
  • linux把一个文件和子目录下面的内容改为所有用户可读写执行

    要将一个文件和子目录下的内容设置为所有用户可读、写和执行权限,可以使用 chmod 命令。 假设您要修改的文件和子目录所在的路径为 /path/to/file_or_directory ,可以运行以下命令: 这里的 -R 选项表示递归地对目录和子目录进行权限修改。 777 表示赋予所有用户读、写和执行权

    2024年02月10日
    浏览(38)
  • Linux笔记之删除指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件

    code review! 这段代码是使用C++语言编写的,它执行了一系列命令来删除指定目录下的旧文件。让我逐行解释代码的功能: 首先,声明并初始化了一个名为 cmd 的 std::string 变量,用于存储要执行的命令。命令的内容是一个字符串,它由多个子命令以管道符( | )连接而成。 接下

    2024年02月04日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包