আমি সাধারণ ইউনিক্স সরঞ্জাম (ব্যাশ, সেড, অ্যাজ, সম্ভবত পার্ল) সহ কংক্রিট মানগুলির সাথে একটি টেমপ্লেট ফাইলে স্থানধারক স্ট্রিং প্রতিস্থাপনের একটি উপায় অনুসন্ধান করছি। এটি প্রতিস্থাপনটি একটি একক পাসে করা গুরুত্বপূর্ণ, এটি যা ইতিমধ্যে স্ক্যান করা / প্রতিস্থাপন করা হয়েছে তা অন্য প্রতিস্থাপনের জন্য বিবেচনা করা উচিত নয়। উদাহরণস্বরূপ, এই দুটি প্রচেষ্টা ব্যর্থ:
echo "AB" | awk '{gsub("A","B");gsub("B","A");print}'
>> AA
echo "AB" | sed 's/A/B/g;s/B/A/g'
>> AA
এই ক্ষেত্রে সঠিক ফলাফল অবশ্যই বিএ।
সাধারণভাবে, সমাধানটি প্রদত্ত প্রতিস্থাপনের স্ট্রিংগুলির মধ্যে একটি দীর্ঘতম ম্যাচের জন্য বাম থেকে ডানে ইনপুট স্ক্যান করার সমতুল্য হওয়া উচিত এবং প্রতিটি ম্যাচের জন্য প্রতিস্থাপন সম্পাদন করা এবং ইনপুটটিতে সেই বিন্দু থেকে চালিয়ে যাওয়া (কোনওোটাই নয়) ইতিমধ্যে পড়া ইনপুট বা সম্পাদিত প্রতিস্থাপনগুলি ম্যাচের জন্য বিবেচনা করা উচিত)। প্রকৃতপক্ষে, বিশদগুলি গুরুত্ব দেয় না, কেবলমাত্র প্রতিস্থাপনের ফলাফলগুলি পুরো বা কিছু অংশে অন্য প্রতিস্থাপনের জন্য বিবেচনা করা হয় না।
দ্রষ্টব্য আমি কেবল সঠিক জেনেরিক সমাধানের সন্ধান করছি। দয়া করে নির্দিষ্ট প্রস্তাবনাগুলি (ইনপুট ফাইলগুলি অনুসন্ধান করুন এবং জোড়গুলি প্রতিস্থাপন করুন) এর জন্য ব্যর্থ হওয়া সমাধানগুলি প্রস্তাব করবেন না, তবে সম্ভবত তাদের সম্ভাবনা কম।
tr AB BA
।