अगर मैं तुम्हें सही ढंग से समझूं कि तुम क्या करना चाहते हो:
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से उत्पादन के साथ कहा जाता है findconcatenated (ऊपर एक निश्चित सीमा)। विषय पर अधिक खोजने के लिए निष्पादन के साथ अर्धविराम (;) बनाम प्लस (+) का उपयोग करके प्रश्न देखें ।
+इसके बजाय का उपयोग करें\;, यह निष्पादन के समय में काफी सुधार करेगा (क्योंकि यह निष्पादन से पहले तक के तर्कों का खंडन करेगाARG_MAX)।