计算代码行数?

计算代码行数?

如果我想计算代码行数,最简单的事情是

cat *.c *.h | wc -l

但是如果我有多个子目录怎么办?

答案1

最简单的方法是使用名为cloc。这样使用它:

cloc .

就是这样。 :-)

答案2

你可能应该使用SLOC计数或者克洛克为此,它们是专门为计算项目中的源代码行数而设计的,无论目录结构等如何;任何一个

sloccount .

或者

cloc .

将生成关于从当前目录开始的所有源代码的报告。

如果你想使用findand wc,GNUwc有一个不错的--files0-from选择:

find . -name '*.[ch]' -print0 | wc --files0-from=- -l

(谢谢蛇形文档为了克洛克建议!)

答案3

由于该命令可以采用多个参数,因此您可以使用GNU 操作的参数wc将所有文件名传递给:wc+-execfind

find . -type f -name '*.[ch]' -exec wc -l {} +

或者,在 中bash,使用 shell 选项globstar递归遍历目录:

shopt -s globstar
wc -l **/*.[ch]

其他外壳默认情况下递归遍历(例如zsh)或具有类似的选项globstar,例如,至少大多数。

答案4

您可以findxargs和一起使用wc

find . -type f -name '*.h' -o -name '*.c' | xargs wc -l

相关内容