Я добавил псевдоним git для подсчета количества строк определенных файлов в моей истории:
[alias]
lines = !lc() { git ls-files -z ${1} | xargs -0 wc -l; }; lc
Тем не менее, wc -l
отчет о нескольких итогах, так что, если у меня есть более чем 100 000 строк, он сообщает для них итоги, а затем идет дальше. Вот пример:
<100 тыс. Строк (желаемый вывод)
$ 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
. Мне все еще интересно, как это исправить, и я не вижу хорошего решения в ответах.