我添加了一个git别名,以提供历史记录中特定文件的行数:
[alias]
lines = !lc() { git ls-files -z ${1} | xargs -0 wc -l; }; lc
但是,wc -l
报告的是多个总计,因此,如果我有超过10万行,它将报告它们的总计,然后继续。这是一个例子:
<100k线(所需输出)
$ git lines \*.xslt
46 packages/NUnit-2.5.10.11092/doc/files/Summary.xslt
232 packages/NUnit-2.5.10.11092/samples/csharp/_UpgradeReport_Files/UpgradeReport.xslt
278 total
> 100k行(必须通过管道传输到grep "total"
)
$ git lines \*.cs | grep "total"
123569 total
107700 total
134796 total
111411 total
44600 total
我如何从而wc -l
不是一系列小计中获得真实的总数?
wc
支持版本是否支持该--files0-from
选项?然后,您可以做{ git ls-files -z ${1} | wc -l --files0-from=- ; }
wc: unrecognized option '--files0-from=-'
xargs
,而不是wc
。我仍然对如何解决它感兴趣,并且答案中没有很好的解决方案。