我如何计算在一个git存储库中所有文件中出现的总行数?
Git ls-files给了我一个由Git跟踪的文件列表。
我正在找一个命令来隐藏所有这些文件。类似的
git ls-files | [cat all these files] | wc -l
我如何计算在一个git存储库中所有文件中出现的总行数?
Git ls-files给了我一个由Git跟踪的文件列表。
我正在找一个命令来隐藏所有这些文件。类似的
git ls-files | [cat all these files] | wc -l
当前回答
github https://github.com/flosse/sloc上的这个工具可以以更描述性的方式提供输出。它将创建你的源代码的统计数据:
物理行 代码行数(源代码) 带有注释的行 单行注释 带有块注释的行 代码行与源代码和注释混淆 空行
其他回答
从时钟1.68开始工作:
cloc——风险投资= git
: | git mktree | git diff --shortstat --stdin
Or:
git ls-tree @ | sed '1i\\' | git mktree --batch | xargs | git diff-tree --shortstat --stdin
我是这样做的:
git ls-files | xargs file | grep "ASCII" | cut -d : -f 1 | xargs wc -l
如果将存储库中的所有文本文件都计算为感兴趣的文件,那么这是可行的。如果其中一些被认为是文档等,则可以添加排除过滤器。
Xargs会让你把所有文件放在一起,然后把它们传递给wc,就像你问的那样:
git ls-files | xargs cat | wc -l
但是跳过中间的cat会给你更多的信息,可能会更好:
git ls-files | xargs wc -l
如果你想找到非空行总数,你可以使用AWK:
git ls-files | xargs cat | awk '/\S/{x++} END{print "非空行总数:",x}'
它使用regex计算包含非空格字符的行数。