如何计算git存储库中几乎所有文件中的总行数?

时间:2017-03-31 20:28:07

标签: git

我遇到一个问题,我在扩展名为.doc,.js,.pdf,.md,.txt

的目录中有文件

我想忽略除.txt之外的所有文件,并获取这些文件中总行数的计数。

使用此命令,我可以忽略.md,但如何包含其他扩展?

git ls-files *[^.md] | xargs cat | wc -l

我试过了:

git ls-files *[^.md|^.pdf||^.doc] | xargs cat | wc -l

但这不起作用。

1 个答案:

答案 0 :(得分:1)

您不需要git ls-files来为您执行限制文件的工作,您只需在管道中插入grep即可。此变体是肯定的,只选择您列出的扩展名:

git ls-files | egrep '\.(doc|js|pdf|md)$' | xargs cat | wc -l

此变体为否定,不包括.txt并保留其他内容:

git ls-files | egrep -v '\.txt$' | xargs cat | wc -l

但请注意,wc -l并未真正为Word文档和PDF等二进制文件提供任何有意义的输出。