क्या यह निर्धारित करने का एक तरीका है कि कोड की एक Xcode परियोजना में कितनी लाइनें हैं? मैं प्रबंधकीय माप या कर्मचारी बेंचमार्किंग उद्देश्यों के लिए ऐसी जानकारी का उपयोग नहीं करने का वादा करता हूं। ;)
क्या यह निर्धारित करने का एक तरीका है कि कोड की एक Xcode परियोजना में कितनी लाइनें हैं? मैं प्रबंधकीय माप या कर्मचारी बेंचमार्किंग उद्देश्यों के लिए ऐसी जानकारी का उपयोग नहीं करने का वादा करता हूं। ;)
जवाबों:
की जाँच करें Cloc ।
क्लोक कई प्रोग्रामिंग भाषाओं में रिक्त लाइनों, टिप्पणी लाइनों और स्रोत कोड की भौतिक रेखाओं को गिनता है।
मैं इसे तैरता हुआ देख रहा हूँ और इसका उपयोग स्वयं कर रहा हूँ:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l
मैं उपयोग कर रहा है Cloc रूप से उल्लेख किया हैNathan Kinsinger
और यह काफी आसान उपयोग करने के लिए है। यह एक पेरेल स्क्रिप्ट है जिसे आप अपने प्रोजेक्ट डायरेक्टरी से जोड़ और चला सकते हैं।
PerL पहले से ही Mac OS का हिस्सा है और आप अपनी लिखी लाइनों की संख्या जानने के लिए इस तरह से स्क्रिप्ट को लागू कर सकते हैं:
perl cloc-1.56.pl ./YourDirectoryWhereYourSourcesAre
यह आउटपुट का एक उदाहरण है जो मुझे ऐसे कमांड से मिला है:
176 text files.
176 unique files.
4 files ignored.
http://cloc.sourceforge.net v 1.56 T=2.0 s (86.0 files/s, 10838.0 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Objective C 80 3848 1876 11844
C/C++ Header 92 980 1716 1412
-------------------------------------------------------------------------------
SUM: 172 4828 3592 13256
-------------------------------------------------------------------------------
Terminal.app खोलें, अपनी परियोजना की मूल निर्देशिका में जाएं, और इस कमांड को चलाएं:
केवल स्विफ्ट के लिए:
find . \( -iname \*.swift \) -exec wc -l '{}' \+
केवल ओब्ज-सी के लिए:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h \) -exec wc -l '{}' \+
ओब्ज-सी + स्विफ्ट के लिए:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h -o -iname \*.swift \) -exec wc -l '{}' \+
ओब्ज-सी + स्विफ्ट + सी + सी ++ के लिए:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.c -o -iname \*.cc -o -iname \*.h -o -iname \*.hh -o -iname \*.hpp -o -iname \*.cpp -o -iname \*.swift \) -exec wc -l '{}' \+
टर्मिनल क्विक टिप्स:
ls: लिस्ट डायरेक्टरी कंटेंट
cd: डाइरेक्ट डायरेक्टरी
टैब को स्वतः पूर्ण करने के लिए टैब दबाएँ,
स्पेस से पहले "\" बैकस्लैश रखना याद रखें,
मेरा सुझाव है कि मुख्य प्रोजेक्ट से एक फोल्डर नीचे जाए ताकि आपको फ्रेमवर्क से कोड काउंट से छुटकारा मिल जाए।
टर्मिनल में, परियोजना निर्देशिका में परिवर्तन करें और चलाएं:
find . -type f -print0 | xargs -0 cat | wc -l
यदि आप केवल कुछ फ़ाइल प्रकार चाहते हैं, तो कुछ ऐसा आज़माएँ
find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l
Xcode स्टेटिस्टिशियन की जाँच करें, यह वही करता है जो आप चाहते हैं। यह अन्य दिलचस्प आंकड़े भी प्रदान करता है इसलिए अभी और फिर मौज-मस्ती के लायक है।
ध्यान दें कि यह वास्तविक फ़ोल्डरों के अंदर नहीं दिखेगा, हालांकि यह समूहों में दिखेगा। ऑड्स आप वास्तविक फ़ोल्डर का उपयोग नहीं कर रहे हैं तो यह बहुत अच्छा काम करेगा। यदि आप फ़ोल्डर्स का उपयोग कर रहे हैं तो आपको बस प्रत्येक फ़ोल्डर में गिनती करनी होगी और उन्हें एक साथ जोड़ना होगा।
नोट: जून, 2012 तक, ऐसा लगता है कि यह Xcode के नवीनतम संस्करणों के साथ ठीक से काम नहीं करता है।
अपने प्रोजेक्ट के अंदर कमांड का पालन करें:
find . -path ./Pods -prune -o -name "*.swift" -print0 ! -name "/Pods" | xargs -0 wc -l
या:
find . -path ./Pods -prune -o -name "*[hm]" -print0 ! -name "/Pods" | xargs -0 wc -l
(* पॉड फ़ाइलों को छोड़कर कुल गिनती से)
यदि आप टर्मिनल में अपनी परियोजना की निर्देशिका में जाते हैं और दर्ज करते हैं:
find . "(" -name "*.h" -or -name "*.m" -or -name "*.mm" -or -name "*.hpp" -or -name "*.cpp" -or -name "*.c" -or -name "*.cc" -or -name "*.swift" ")" -print0 | xargs -0 wc -l
यह आपको एक प्रोजेक्ट ब्रेकडाउन देगा, साथ ही प्रत्येक फ़ाइल के लिए कुल लाइन और संपूर्ण रूप से प्रोजेक्ट।
find . "(" -name "*.swift" ")" -print0 | xargs -0 wc -l
find . "(" -name "RE*.swift" ")" -print0 | xargs -0 wc -l
नोज़ी का संस्करण मेरे लिए काम नहीं करता है, लेकिन यह एक:
find . -type f -print0 | xargs -0 cat | wc -l
एक त्वरित और आसान तरीका:
एक रेगेक्स खोज का उपयोग करें (नेविगेटर ढूंढें, खोजें> नियमित अभिव्यक्ति चुनें)।
। \ N
Xcode खोज स्कोप के साथ आसानी से काम करता है और आप इसे आसानी से जिस भी प्रकार की पंक्ति में गिनना चाहते हैं, उसे अनुकूलित कर सकते हैं;)।
आप MacPorts के माध्यम से SLOCCount स्थापित कर सकते हैं । या, अधिक गंभीर रूप से, आप wc -l का उपयोग कर सकते हैं।
मैं xcode से परिचित नहीं हूं, लेकिन अगर आपको ज़रूरत है तो एक निर्देशिका ट्री के भीतर उन सभी विशिष्ट फ़ाइलों से लाइनों की संख्या की गणना करने के लिए, आप निम्न कमांड का उपयोग कर सकते हैं:
find .... match of all those files ... -exec wc -l {} +
बाद यहोशू Nozzi का जवाब , में जीएनयू लगता है इस तरह की फ़ाइलों की तरह होगा के लिए रेगुलर एक्सप्रेशन:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -exec wc -l {} +
या और भी
find -regex ".*\.\(m\|mm\|cpp\|swift\)$" -exec wc -l {} +
इस में या तो खत्म होने वाली सभी फाइलों को मैच के लिए एक नियमित अभिव्यक्ति का उपयोग करता है .m
, .mm
, .cpp
या .swift
। आप फ़ाइल खोजने में regex का उपयोग करने के उन तरीकों के बारे में अधिक जानकारी देख सकते हैं ।
यदि आप मैक ओएस के साथ काम कर रहे हैं , तो आपको थोड़े अलग दृष्टिकोण की आवश्यकता है, जैसा कि टिप्पणियों में मोति श्नोर द्वारा समझाया गया है :
find -E . -regex ".*\.([hmc]|mm|cp+|swift|pch)$" -exec wc -l {} +
दोनों के रूप में एक आउटपुट प्रदान करेगा:
234 ./file1
456 ./file2
690 total
तो आप या तो इसे ऐसे ही रख सकते हैं या सिर्फ tail -1
(यानी find ... | tail -1
) को पाइप कर सकते हैं , ताकि आपको बस आखिरी लाइन कुल मिल जाए।
\|
MacOS में और दूसरों के बारे में कहाँ बात करते हैं । --regex
दोनों GNU खोजने (एक मैं उपयोग) और MacOS में मान्य है।
दोहराने के लिए क्षमा करें। यह सबसे आसान तरीका है IMHO:
find /users/<#username#>/documents/folderWithProject/ -type f -exec cp {} /users/<#username#>/documents/folderWithProject/newFolder/ \;
यह प्रोजेक्ट फ़ोल्डर से सभी फ़ाइलों को कॉपी करेगा newFolder
।
newFolder
line-counter
एक अच्छा विकल्प है। यह CLOC की तुलना में हल्का है और अन्य कमांड की तुलना में अधिक शक्तिशाली और उपयोग करने में आसान है।
एक त्वरित अवलोकन
इस तरह से आपको टूल मिलता है
$ pip install line-counter
line
वर्तमान निर्देशिका (पुनरावर्ती) के तहत फ़ाइल गणना और लाइन काउंट प्राप्त करने के लिए कमांड का उपयोग करें
$ line
Search in /Users/Morgan/Documents/Example/
file count: 4
line count: 839
यदि आप अधिक विवरण चाहते हैं, तो बस उपयोग करें line -d
।
$ line -d
Search in /Users/Morgan/Documents/Example/
Dir A/file C.c 72
Dir A/file D.py 268
file A.py 467
file B.c 32
file count: 4
line count: 839
और इस टूल का सबसे अच्छा हिस्सा यह है कि आप इसे कॉन्फ़िगर फ़ाइल जैसी .ignignore को जोड़ सकते हैं। आप किस तरह की फाइलों को चुनने या अनदेखा करने के लिए नियमों को सेट कर सकते हैं जैसे कि आप '.gitignore' में करते हैं। हां, इस उपकरण का आविष्कार केवल यह जानने के लिए किया जाता है कि मेरे पास कितनी लाइनें हैं।
अधिक विवरण और उपयोग यहां है: https://github.com/MorganZhang100/line-counter
मैं इस सरल उपकरण का लेखक हूं। आशा है कि यह किसी की मदद कर सकता है।