आउटपुट की लाइनों की संख्या की गणना कैसे करें?


30

मान लीजिए कि मेरे पास कार्यक्रम है:

Calculate.py

क्या एक यूनिक्स कमांड-लाइन है जो मेरे प्रोग्राम, कैलक्लाइंडहोम से उत्पन्न लाइनों की संख्या को गिनाती है?

जवाबों:


51

आप में आउटपुट को पाइप कर सकते हैं wc। आप -lलाइनों को गिनने के लिए ध्वज का उपयोग कर सकते हैं । कार्यक्रम को सामान्य रूप से चलाएं और पुनर्निर्देशित करने के लिए एक पाइप का उपयोग करेंwc.

python Calculate.py | wc -l

वैकल्पिक रूप से, आप अपने प्रोग्राम के आउटपुट को किसी फ़ाइल में रीडायरेक्ट कर सकते हैं, कह सकते हैं calc.outऔर wcउस फ़ाइल पर चला सकते हैं ।

python Calculate.py > calc.out
wc -l calc.out

3
यह इस तरह की छोटी चीजें हैं जो पाइपिंग को इतना शक्तिशाली बनाती हैं। हम इस इंटरऑपरेबिलिटी को सॉफ्टवेयर डेवलपमेंट में वापस लाने के लिए खुद को अच्छा करेंगे, जो मुझे लगता है कि फंक्शनल प्रोग्रामिंग है।
जोशुआ पिंटर

1
दूसरी ओर @JoshuaPinter यदि आप बस किसी अन्य फ़ंक्शन में लाइनों की संख्या को पाइप करना चाहते हैं, तो आपको अब मैन्युअल रूप से आउटपुट को पार्स करने की आवश्यकता है wc। दयालुता से यह आसान है ( cut -f1 -d' '), लेकिन हर आदेश के लिए भी यह सच नहीं है। कमांड लाइन को आदिम बनाने के Powershell दृष्टिकोण के लिए एक टेक्स्ट ऑब्जेक्ट के बजाय "ऑब्जेक्ट" के लिए कुछ कहा जाना चाहिए।
छायाकार

@shadowtalker मैं Powershell से परिचित नहीं हूँ लेकिन objects के बजाय s से गुजरना Stringसमझ में आता है। कुछ बिंदु पर मैं अधिक कमांड लाइन टूलिंग में गहरी गोता लगाना चाहता हूं।
जोशुआ पिंटर

1

ऊपर के संचार (wc -l) खाली रेखाओं को भी गिनेंगे। नीचे दिए गए कमांड का उपयोग करना बेहतर है जो खाली लाइनों को हटाता है और इसे गिनता है

python Calculate.py |sed '/^$/d'| awk '{print NR}'| sort -nr| sed -n '1p'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.