मैं केवल तीसरी पंक्ति 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
एक निश्चित स्ट्रिंग वाली लाइनों को खोजने के लिए भी उपयोग कर सकते हैं ।