ฉันได้เพิ่มนามแฝง git เพื่อให้การนับจำนวนบรรทัดของไฟล์เฉพาะในประวัติของฉัน:
[alias]
lines = !lc() { git ls-files -z ${1} | xargs -0 wc -l; }; lc
อย่างไรก็ตามwc -l
มีการรายงานผลรวมหลายรายการเช่นถ้าฉันมีมากกว่า ~ 100k บรรทัดจะรายงานยอดรวมสำหรับพวกเขาจากนั้นก็จะดำเนินการต่อ นี่คือตัวอย่าง:
<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
ฉันยังสนใจที่จะแก้ไขและฉันไม่เห็นคำตอบที่ดีในการแก้ปัญหา