मैं केवल तीसरी पंक्ति df -hआउटपुट कहना चाहता हूं ।
मुझे किस तरह की कमांड का उपयोग करना चाहिए?
मैं केवल तीसरी पंक्ति df -hआउटपुट कहना चाहता हूं ।
मुझे किस तरह की कमांड का उपयोग करना चाहिए?
जवाबों:
dfआदेश वास्तव में एक तर्क फाइल सिस्टम आप चाहते हैं की पहचान स्वीकार करता है। तो आप उपयोग कर सकते हैं, उदाहरण के लिए, df /homeया df /dev/sda3।
यदि आप किसी स्क्रिप्ट के लिए आउटपुट को पार्स करने का इरादा रखते हैं, तो आप df -Pयह गारंटी देना चाहेंगे कि यह कभी भी कई लाइनों में नहीं लिपटे। इसलिए, उदाहरण के लिए, आप उपयोग कर सकते हैं df -Ph /home | tail -n +2(लेकिन यदि आप किसी स्क्रिप्ट के लिए आउटपुट पार्स कर रहे हैं, तो उन स्थानों के साथ फ़ाइल नाम की संभावना से अवगत रहें)
df /homeहेडर प्रदान करता है। आप उपयोगकर्ता के उद्देश्य की व्याख्या कर रहे हैं। आप शायद सही हो सकते हैं। आप गलत हो सकते हैं, कौन जानता है?
tail -n +2हैडर को हटा देता है।
आप के संयोजन का उपयोग कर सकते हैं headऔर tail:
df -h | head -3 | tail -1
या
df -h | tail -n +3 | head -1
लेकिन ध्यान दें, dfआउटपुट को dfस्वयं के विकल्पों से फ़िल्टर करने की अनुमति देता है, आपको किसी भी बाहरी कमांड का उपयोग करने से पहले उन पर ध्यान देना चाहिए।
जाँच करें man df।
Awk टेक्स्ट प्रोसेसिंग टूल है, इसलिए यह इस कार्य के लिए उपयुक्त है
df -h | awk 'NR == 3'
मुझे लगता है कि आप आवश्यक रूप से तीसरी पंक्ति की तलाश में नहीं हैं, लेकिन उस पंक्ति के लिए जो या तो एक विशिष्ट डिस्क (जैसे /dev/sda3) या एक विशिष्ट माउंट बिंदु (जैसे /home) का उल्लेख करती है ।
इसलिए केवल तीसरी पंक्ति को प्रदर्शित करने के बजाय, जो असुरक्षित है क्योंकि आउटपुट ऑर्डर बदल सकता है और आपको एक अलग परिणाम मिल सकता है, आप आउटपुट को सामग्री से फ़िल्टर कर सकते हैं और केवल उन पंक्तियों को दिखा सकते हैं जो एक विशिष्ट पैटर्न से मेल खाते हैं या जिसमें एक कीवर्ड होता है।
इस के लिए आपका उपकरण है grep।
उदाहरण के लिए यदि आप डिवाइस के बारे में लाइन चाहते हैं /dev/sda3, तो आप टाइप करें:
df -h | grep '/dev/sda3'
यदि आप चाहते हैं कि रेखा आपके होम डायरेक्टरी को आरोह बिंदु के रूप में बताए, तो उपयोग करें:
df -h | grep '/home'
df -h /dev/sda3या df -h /homeउत्तरार्द्ध काम करता है, भले ही यह एक माउंट बिंदु नहीं है)।
आप यह भी उपयोग कर सकते हैं perl:
df -h | perl -ne 'print if $.==3'
$.ताकि आप के साथ वां लाइन प्रिंट कर सकता है, वर्तमान पंक्ति संख्या है perl -ne 'print if $.==N'।
मेरा पहला विचार एक सिर-पूंछ-निर्माण होगा।
उदाहरण:
df -h | head -3 | tail -1
head -3आउटपुट को तीन लाइनों के बाद रोकने का कारण बनता है और tail -1केवल अंतिम पंक्ति का उत्पादन करेगा।
वैकल्पिक रूप से, यदि आप जानते हैं कि आउटपुट कैसा दिखेगा, तो आप grepएक निश्चित स्ट्रिंग वाली लाइनों को खोजने के लिए भी उपयोग कर सकते हैं ।