अगर मैं तुम्हें सही ढंग से समझूं कि तुम क्या करना चाहते हो:
find . -name '*.py' -print0 | xargs -0 grep 'something' > output.txt
Find
एक्सटेंशन वाली सभी फाइलें py
, grep
केवल पंक्तियाँ होती हैं something
और पंक्तियों को सहेजती हैं output.txt
। यदि फ़ाइल में कुछ भी है तो उसे बदल दिया जाएगा।
संपादित करें: प्रयोग -सेक्स:
find . -name '*.py' -exec grep 'something' {} \; > output.txt
मैं यहाँ क्रिस डाउन्स टिप्पणी शामिल कर रहा हूँ। उपरोक्त आदेश के परिणामस्वरूप grep
कई बार निष्पादित होने के रूप में निष्पादित किया जाएगा find
। हालांकि, अगर आप की जगह ;
एक साथ +
, grep
से उत्पादन के साथ कहा जाता है find
concatenated (ऊपर एक निश्चित सीमा)। विषय पर अधिक खोजने के लिए निष्पादन के साथ अर्धविराम (;) बनाम प्लस (+) का उपयोग करके प्रश्न देखें ।
+
इसके बजाय का उपयोग करें\;
, यह निष्पादन के समय में काफी सुधार करेगा (क्योंकि यह निष्पादन से पहले तक के तर्कों का खंडन करेगाARG_MAX
)।