如何计算包括子目录在内的代码行

speciousfool:

假设我要计算项目中的代码行数。如果所有文件都在同一目录中,则可以执行:

cat * | wc -l

但是,如果有子目录,则无法使用。为此,cat必须具有递归模式。我怀疑这可能是xargs的工作,但我想知道是否还有更优雅的解决方案?

友善的:

首先,您不需要使用cat行数。这是一种称为猫的无用使用(UUoC)反模式要计算当前目录中文件的行数,请使用wc

wc -l * 

然后,该find命令递归子目录:

find . -name "*.c" -exec wc -l {} \;
  • . 是要从中开始搜索的顶级目录的名称

  • -name "*.c" 是您感兴趣的文件的模式

  • -exec 给出要执行的命令

  • {}是find命令传递到命令的结果(在此处wc-l

  • \; 指示命令结束

此命令生成所有找到的文件的列表及其行数,如果要获得所有找到的文件的总和,可以使用find列出文件(带有-print选项),然后使用xargs将该列表作为参数传递去WC-L。

find . -name "*.c" -print | xargs wc -l 

编辑以解决Robert Gamble的评论(谢谢):如果文件名中包含空格或换行符(!),则必须使用-print0option代替-printand,xargs -null以便文件名列表与以空终止的字符串交换。

find . -name "*.c" -print0 | xargs -0 wc -l

Unix的哲学是拥有只做一件事并且做得很好的工具。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何计算包括子目录在内的代码行

Inno Setup获取包括子目录在内的目录大小

如何遍历目录中的子目录并计算python中子目录中的文件

如何在Firebase托管中包括子目录

如何跨子目录包括所有.so库

如何计算目录中存在的所有子目录?

递归计算目录中的所有文件(包括子目录中的文件)

计算目录(包括子目录)中文件数量的最快方法

如何计算子目录中的文件数?

遍历文件('for file in ...),还包括子目录?

批处理运行,包括子目录

如何确保cmake代码将在子目录之后运行

如何告诉原子目录包含项目源代码?

如何在子目录中测试代码?

计算所有不可删除文件的总大小(包括子目录中的文件)

如何打印每个子目录,但是每个子目录在打印之前都应在其中

如何递归grep并忽略子目录的子目录?

如何检查每个子目录在目录中是否具有唯一名称

如何在目录(包括子目录)中查找最新文件?

如何建立目录中所有文件的索引,包括子目录和ZIP文件的内容?

如何使用Shell脚本备份目录和文件,包括所有子目录和文件?

如何排除所有子目录,但在rsync中包括目录文件?

如何启用成员登录到特定目录的权限,包括Wordpress中的子目录

如何使用Audited监视所有目录(包括所有子目录)?

如何使用通过FTP的骆驼路由将所有文件从目录(包括子目录)移动到特定目录,而目标中没有子目录?

如何使用Java代码将文件夹(包括子目录和文件)移动到新文件夹中

如何列出Zip存档中的所有* .doc文件,包括子目录中的文件?

如何删除Bash中的所有文件和子目录(包括边缘情况)

makefile:如何链接来自不同子目录的目标文件并包括不同的搜索路径