अन्य समाधान रेगेक्स सिंटैक्स को मिलाते हैं। खोज और प्रतिस्थापन दोनों के लिए पर्ल / पीसीआरई पैटर्न का उपयोग करने के लिए , और केवल मिलान वाली फ़ाइलों को संसाधित करने के लिए, यह काफी अच्छी तरह से काम करता है:
grep -rlZPi 'match1' | xargs -0r perl -pi -e 's/match2/replace/gi;'
जहां match1
और match2
आमतौर पर समान होते हैं, लेकिन match1
अधिक उन्नत सुविधाओं को हटाने के लिए सरलीकृत किया जा सकता है जो केवल प्रतिस्थापन के लिए प्रासंगिक हैं, जैसे समूहों को कैप्चर करना।
अनुवाद: grep
पुनरावर्ती और सूची फ़ाइलें जो इस PCRE पैटर्न से मेल खाती हैं, फ़ाइल नाम में किसी विशेष वर्ण की रक्षा के लिए nul द्वारा अलग की जाती हैं, फिर उन फ़ाइलनामों को पाइप करती हैं, xargs
जो एक nul- पृथक सूची की अपेक्षा कर रहे हैं, लेकिन यदि कोई नाम प्राप्त नहीं होता है, तो वे कुछ भी नहीं करेंगे। और perl
स्थानापन्न रेखाओं पर जाएं जहां मैच पाए जाते हैं।
बाइनरी फ़ाइलों को अनदेखा I
करने के grep
लिए स्विच जोड़ें । केस-संवेदी मिलान के लिए, ड्रॉप i
से स्विच grep
, और i
झंडा प्रतिस्थापन अभिव्यक्ति से जुड़ी है, लेकिन नहींi
स्विच पर perl
ही।