2010-12-26 12 views
6

शीर्षक के रूप में कहते हैं मैं कैसे बैश का उपयोग कर एक स्रोत कोड फ़ोल्डर में लाइनों की कुल संख्या की गणना कर सकते आदेशोंकैसे स्रोत कोड में लाइनों की संख्या की गणना करने के

+0

उपयोग कर सकते हैं क्या प्रोग्रामिंग भाषाओं का (रों) में अपने sorce कोड लिखा है? क्या आपको संकलित फाइलों को अनदेखा करने की आवश्यकता है? –

उत्तर

19

उपयोग sloccount

+3

+1 पुल के लिए टिप्पणी पर व्हील का पहले से ही –

+0

+1 का आविष्कार किया गया है (डेविड व्हीलर <-> पहिया का आविष्कार पहले से ही किया जा चुका है)। स्लोकाउंट का उल्लेख करने के लिए – user502515

+0

+1। मैं क्लोक का उपयोग करता हूं और स्लोकाउंट में अतिरिक्त जानकारी है जो काफी आसान है। –

2

आप की तरह कुछ की कोशिश कर सकते:

find . -name "*.java" -exec cat {} \; | wc -l 
-1

यह खाली लाइनों को भी गिना जाएगा, लेकिन यह आसान है। विशिष्ट निर्देशिका आप चाहते हैं की जांच के लिए जाओ और

find . | wc 
1

करना मेरे सुझाव होगा

  1. उपयोग Barti के जवाब के रूप में strip out all the comments
  2. को सभी फाइलों
  3. उपयोग sed या कुछ और पता लगाने के लिए एक find आदेश
  4. यह बिल्कुल मत करो

एसएलओसी है सॉफ़्टवेयर को मापने के लिए एक बहुत ही भ्रामक तरीका। बिल गेट्स ने कहा कि यह वजन से एक विमान की गुणवत्ता का आकलन करने जैसा था, और यह एकमात्र सहायक चीज हो सकती है जिसे उसने कभी कहा था।

+1

का समर्थन करता है आपका अंतिम अनुच्छेद गलत है, क्योंकि यह इस बात पर निर्भर करता है कि आप सॉफ्टवेयर के बारे में क्या मापने की कोशिश कर रहे हैं। उदाहरण के लिए, बोइंग जेटलाइनर का वजन और इसकी लागत लगभग आनुपातिक है - जिसका मतलब है कि, मौजूदा 737, 747, 767, और 777 उत्पाद लाइनों की लागत और वजन के माध्यम से एक रिग्रेशन लाइन दी गई है, आप अनुमान लगा सकते हैं 787 ड्रीमलाइनर की लागत लगभग 15% के भीतर अपना वजन दिया गया। विकास के समय और एसएलओसी गिनती में सॉफ्टवेयर के समान वर्गों और इसी तरह की विकास टीमों के समान आनुपातिकता है। –

+0

मुझे लगता है कि यह एक उत्कृष्ट समानता है। एक ही कंपनी द्वारा किए गए बहुत ही समान विमान, और वजन और लागत के बीच घनिष्ठ संबंध है। आप एक ही भाषा में उसी व्यक्ति द्वारा लिखे गए दो कार्यक्रमों की तुलना करते हैं, हाँ, आप शायद एसएलओसी को लिखने के लिए समय, बग की संख्या आदि से सहसंबंध कर सकते हैं। * किसी अन्य मामले में * ... – Malvolio

-1

पहले से ही उत्तर दिया गया है, बस awk का उपयोग करके एक और तरीका दे रहा है जो आपके पास निश्चित रूप से होगा।

cat *.ext | awk 'BEGIN{i=0;} {i++;} END{print "Lines ", i}'

मैं केवल भी इस क्योंकि यह आसानी से लाइनों है कि आप गिनती करने के लिए नहीं करना चाहते हैं के लिए (जैसे टिप्पणियां) पैटर्न को जोड़ने के लिए संपादित किया जा सकता सुझाव देते हैं।

9

cloc का उपयोग करें। यह लगभग 80 भाषाओं का समर्थन करता है।

+0

एक फ़ाइल, कोई संकलन नहीं, पर्ल के अलावा कोई निर्भरता नहीं। अच्छा लगा। सबसे साफ जवाब –

9

तुम बस

find . -name '*.php' | xargs wc -l 
+0

+1 आप शायद केवल फाइलें प्राप्त करने के लिए '-type f' का उपयोग करना चाहते हैं, और कुल मिलाकर केवल' पूंछ -1 'जोड़ना चाहते हैं। इसके अलावा, दुर्भाग्यवश, यदि आपके पास रिक्त स्थान वाले कोई फ़ाइल नाम हैं तो यह काम नहीं करता है; 'ढूंढो।-type f -exec wc -l {} + | पूंछ -1 'तब तक काम करता है जब तक आपके पास बहुत अधिक फाइलें न हों। – Elijah

+2

के लिए –

संबंधित मुद्दे