मैंने अपने इतिहास में विशिष्ट फाइलों की लाइन काउंट देने के लिए एक 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
। मैं अभी भी इसे कैसे ठीक करने में दिलचस्पी रखता हूं, और मुझे उत्तरों में अच्छा समाधान नहीं दिखता है।