कमांड परिणाम का विशिष्ट भाग कैसे प्राप्त करें?


-1

इस आदेश के परिणाम से:

diskutil info / | grep "Free Space"

जो कुछ इस प्रकार है:

Volume Free Space:        31.5 GB (31519584256 Bytes) (exactly 61561688 512-Byte-Units)

मैं ही पाना चाहता हूं

31.5 GB

मैं यह कैसे कर सकता हूँ?


1
माफ करना, diskutil infoएक मैक ओएस उपकरण है?
सर्गी कोलोडियाज़नी

हो सकता है, im का उपयोग कर MAC, लेकिन वे एक ही हैं तो यह अच्छा है
Lachlan जोन्स

1
बस स्पष्ट होने के लिए, मैक और उबंटू एक समान नहीं हैं। यह सिर्फ आपकी किस्मत है कि आप टेक्स्ट प्रोसेसिंग से संबंधित प्रश्न पूछ रहे हैं, जो पता करने के लिए काफी आसान है। उपयोगिताओं एक ही लग सकता है - sed, awk, और grep- लेकिन वे अलग अलग संस्करण हैं। उचित साइटों पर उचित प्रश्न पूछना आपके हित में है। विशेष रूप से, हमारे पास Mac उपयोगकर्ताओं की आवश्यकताओं को पूरा करने के लिए apple.stackexchange.com है।
सर्गी कोलोडियाज़नी

जवाबों:


1

आप :क्षेत्र विभाजक के रूप में दो का उपयोग करके लाइन को विभाजित करके, सूचना को प्रिंट करने के लिए awk का उपयोग कर सकते हैं ।

diskutil info / | awk -F':' '/Free Space/ {gsub(/\(.*/,"");  gsub(/\ /,""); print $2}'

धन्यवाद यह काम किया है, हालांकि मैं पूरी तरह से यह समझ में नहीं आता है।
लाचलान जोन्स

2

grepपीसीआरई ( -P) के साथ प्रयोग करना :

diskutil info / | grep -Po 'Free Space:\s+\K[^(]+(?=\s+\()'
  • Free Space:\s+वांछित आउटपुट से पहले भाग से मेल खाता है, मैच को \Kछोड़ देता है

  • [^(]+वांछित आउटपुट से मेल खाता है, शून्य चौड़ाई सकारात्मक लुकहैड पैटर्न (?=\s+\()यह सुनिश्चित करता है कि मैच व्हाट्सएप और उसके बाद हो (

इसी तरह के तर्क का उपयोग कर sed:

diskutil info / | sed -r 's/.*Free Space:\s+([^(]+)\s+\(.*/\1/'

उदाहरण:

% grep -Po 'Free Space:\s+\K[^(]+(?=\s+\()' <<<'Volume Free Space:        31.5 GB (31519584256 Bytes) (exactly 61561688 512-Byte-Units)'
31.5 GB

% sed -r 's/.*Free Space:\s+([^(]+)\s+\(.*/\1/' <<<'Volume Free Space:        31.5 GB (31519584256 Bytes) (exactly 61561688 512-Byte-Units)'
31.5 GB

1

Ubuntu 14.04 और इसके बाद के संस्करण पर, बस उपयोग करें df:

$ df -h --output=size /
 Size
  30G

कॉलम हैडर से छुटकारा पाने के लिए:

$ df -h --output=size / | tail -1 
  30G
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.