我如何计算在一个git存储库中所有文件中出现的总行数?

Git ls-files给了我一个由Git跟踪的文件列表。

我正在找一个命令来隐藏所有这些文件。类似的

git ls-files | [cat all these files] | wc -l

当前回答

Xargs会让你把所有文件放在一起,然后把它们传递给wc,就像你问的那样:

git ls-files | xargs cat | wc -l

但是跳过中间的cat会给你更多的信息,可能会更好:

git ls-files | xargs wc -l

其他回答

Xargs会让你把所有文件放在一起,然后把它们传递给wc,就像你问的那样:

git ls-files | xargs cat | wc -l

但是跳过中间的cat会给你更多的信息,可能会更好:

git ls-files | xargs wc -l

我在玩cmder (http://gooseberrycreative.com/cmder/),我想计算html,css,java和javascript的行数。虽然上面的一些答案是有效的,或者grep中的模式没有-我在这里(https://unix.stackexchange.com/questions/37313/how-do-i-grep-for-multiple-patterns)发现我必须转义它

这就是我现在用的:

git ls-files | grep " \ (html css |。\ |。js |。java \)美元“| xargs厕所-

Try:

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

在有问题的目录上

github https://github.com/flosse/sloc上的这个工具可以以更描述性的方式提供输出。它将创建你的源代码的统计数据:

物理行 代码行数(源代码) 带有注释的行 单行注释 带有块注释的行 代码行与源代码和注释混淆 空行

Carl Norum的答案假设没有带空格的文件,IFS的一个字符是制表符和换行符。解决方案是用NULL字节终止该行。

 git ls-files -z | xargs -0 cat | wc -l