আপনার যদি আরও অনেক সন্ধানের ধরণ থাকে তবে আপনি এগুলি একটি ফাইলে সংরক্ষণ করতে পারেন এবং সেখান থেকে বিকল্পগুলি পড়তে পারেন। উদাহরণস্বরূপ, বলুন যে এগুলি এর বিষয়বস্তু 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