stdin

2012-11-16 13 views
10

के "आकार" की गणना करने के लिए डु के साथ पाइप का उपयोग करें मेरे पास एक प्रोग्राम है जिसमें मैं फ़ाइल से टेक्स्ट लोड करता हूं और फिर इसे फ़ील्ड में से किसी एक के अनुसार फ़िल्टर करता हूं। मुझे इस फ़िल्टरिंग चरण के बाद डेटा का आकार क्या है।stdin

आदर्श रूप में, मैं की तरह कुछ करने में सक्षम हो जाएगा: awk '$2>=10' <myfile | du -

मैं सिर्फ फिल्टर लागू करते हैं और उत्पादन कहीं बचा सकता है, उस पर डु फोन, और फिर फ़ाइल को नष्ट, लेकिन फाइल काफी बड़ी है, तो डिस्क पर लिखने में कुछ समय लग सकता है।

यह पहचानते हुए कि du "डिस्क उपयोग" के लिए खड़ा है, मुझे संदेह है कि मैं ऐसा कुछ पूछ रहा हूं जो प्रोग्राम को कैसे काम करता है, कोई समझ नहीं आता है। यदि कोई और सामान्य उपयोगिता है जो ऐसा करेगी, तो कृपया इसका सुझाव दें!

उत्तर

17

पाइपलाइन के माध्यम से जाने वाली बाइट्स की संख्या को गिनने के लिए आप इसे wc -c पर पाइप कर सकते हैं।

4

du "डिस्क उपयोग" के लिए खड़ा है। एक पाइप में डेटा डिस्क को हिट नहीं करता है, इसलिए काम करने के लिए कोई "du" नहीं है। इसके बजाय wc का उपयोग करें, जो "शब्द गणना" है।

awk '$2>=10' < myfile | wc -c 

-c झंडा मायने रखता है बाइट्स।