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