Tôi đã thêm một bí danh git để cung cấp cho tôi số lượng các tệp cụ thể trong lịch sử của mình:
[alias]
lines = !lc() { git ls-files -z ${1} | xargs -0 wc -l; }; lc
Tuy nhiên, wc -l
đang báo cáo nhiều tổng số, sao cho nếu tôi có hơn ~ 100 nghìn dòng, nó sẽ báo cáo tổng số cho chúng, sau đó tiếp tục. Đây là một ví dụ:
<100k dòng (đầu ra mong muốn)
$ 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 dòng (phải chuyển sang grep "total"
)
$ git lines \*.cs | grep "total"
123569 total
107700 total
134796 total
111411 total
44600 total
Làm thế nào để tôi có được tổng số thực sự wc -l
, không phải là một loạt các tổng số phụ?
wc
hỗ trợ của bạn có --files0-from
tùy chọn không? Sau đó, bạn có thể làm{ git ls-files -z ${1} | wc -l --files0-from=- ; }
wc: unrecognized option '--files0-from=-'
xargs
, không phảiwc
. Tôi vẫn quan tâm đến cách khắc phục nó và tôi không thấy một giải pháp tốt trong các câu trả lời.