यदि आपके पास कई और खोज पैटर्न हैं, तो आप उन्हें एक फ़ाइल में सहेज सकते हैं और वहां से प्रतिस्थापन को पढ़ सकते हैं। उदाहरण के लिए, ये कहें कि ये निम्नलिखित हैं replacements.txt
:
www\.abcdef www.test.abcdef
www\.klmnop www.test.klmnop
फिर आप एन प्रतिस्थापनों की एक सूची पढ़ सकते हैं और उन्हें इसके साथ बदल सकते हैं:
while read from to; do
sed -i "s/$from/$to/" infile.txt ;
done < replacements.txt
टिप्पणियाँ:
- यह मानता है कि आपके खोज स्ट्रिंग में रिक्त स्थान नहीं हैं और किसी भी अजीब वर्ण को अंदर भागने की आवश्यकता है
replacements.txt
।
- यह
sed
प्रति प्रतिस्थापन एक चलाएगा जो आपके कई प्रतिस्थापन ऑपरेशन होने में थोड़ी देर लग सकता है।
- यह मनमाने ढंग से प्रतिस्थापन (हजारों या लाखों या जो कुछ भी) के साथ सौदा कर सकता है, जब तक कि आपको कोई आपत्ति नहीं है कि इसमें थोड़ा अधिक समय लगेगा।
एक अन्य विकल्प उपरोक्त को sed
स्क्रिप्ट के रूप में लिखना होगा :
s/www\.abcdef/www\.test\.abcdef/g;
s/www\.kmlnop/www\.test\.klmnop/g;
s/aaaa/bbbb/g;
s/cccc/dddd/g;
s/eeee/ffff/g;
फिर आप अपनी फ़ाइल पर स्क्रिप्ट चला सकते हैं और यह एक ही बार में सभी प्रतिस्थापन कर देगा:
sed -f replace.sed infile.txt