Sed (Stream Editor) একটি শক্তিশালী টুল যা টেক্সট ফাইল বা স্ট্রিমের মধ্যে সহজ এবং জটিল পরিবর্তন করতে ব্যবহৃত হয়। এর মধ্যে Simple Substitution (সরল প্রতিস্থাপন) এবং Global Substitution (গ্লোবাল প্রতিস্থাপন) দুটি গুরুত্বপূর্ণ অপারেশন রয়েছে, যা টেক্সট পরিবর্তন করার ক্ষেত্রে ব্যাপকভাবে ব্যবহৃত হয়।
1. Simple Substitution (সরল প্রতিস্থাপন)
Simple Substitution হল একটি টেক্সট ফাইলে একটি নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজে তাকে অন্য একটি শব্দ বা প্যাটার্ন দিয়ে প্রতিস্থাপন করার পদ্ধতি। এটি সবচেয়ে সাধারণ এবং মৌলিক Sed কমান্ড হিসেবে কাজ করে।
সিনট্যাক্স:
sed 's/old_text/new_text/' file.txtএখানে:
s: এটি substitution অপারেশন নির্দেশ করে, অর্থাৎ প্যাটার্নের পরিবর্তন করা।old_text: যে টেক্সটটি আপনি খুঁজতে চান এবং প্রতিস্থাপন করতে চান।new_text: যেটি আপনিold_textএর জায়গায় বসাতে চান।file.txt: যে ফাইলটি আপনি পরিবর্তন করতে চান।
উদাহরণ:
sed 's/cat/dog/' file.txtএই কমান্ডটি file.txt ফাইলে প্রথম "cat" শব্দটি খুঁজে তা "dog" দিয়ে প্রতিস্থাপন করবে। এটি শুধুমাত্র প্রথম ম্যাচিং টেক্সট পরিবর্তন করবে, পরবর্তী কোনো মিল পাওয়া যাবে না।
2. Global Substitution (গ্লোবাল প্রতিস্থাপন)
Global Substitution হল একে একে সমস্ত occurrences পরিবর্তন করার পদ্ধতি। এর মাধ্যমে, আপনি একটি লাইন বা পুরো ফাইলে যতবার সেই নির্দিষ্ট প্যাটার্নটি থাকবে, তা সবগুলোকে প্রতিস্থাপন করতে পারবেন। এর জন্য g ফ্ল্যাগ ব্যবহার করা হয়, যা global (বিশ্বব্যাপী) প্রতিস্থাপন নির্দেশ করে।
সিনট্যাক্স:
sed 's/old_text/new_text/g' file.txtএখানে:
g: এটি global নির্দেশক, যা বলে যে প্যাটার্নের সব occurrences পরিবর্তন করা হবে, প্রথমটির পরবর্তী গুলোও।
উদাহরণ:
sed 's/cat/dog/g' file.txtএই কমান্ডটি file.txt ফাইলে সব "cat" শব্দকে "dog" দিয়ে প্রতিস্থাপন করবে, এমনকি যদি "cat" শব্দটি একাধিক বার একই লাইনে থাকে, তাও।
Simple Substitution vs Global Substitution
- Simple Substitution: এটি একটি নির্দিষ্ট লাইনে প্রথম বার পাওয়া প্যাটার্নটিই শুধুমাত্র প্রতিস্থাপন করে।
- Global Substitution: এটি পুরো লাইনে বা পুরো ফাইলে যতবার ঐ প্যাটার্ন পাওয়া যাবে, সেগুলোকে সবগুলোকে প্রতিস্থাপন করে।
উদাহরণ 1: Simple Substitution
ধরা যাক, আপনার ফাইলে "apple" শব্দটি রয়েছে এবং আপনি প্রথম occurrence (প্রথমবার) শুধুমাত্র "orange" দিয়ে প্রতিস্থাপন করতে চান:
sed 's/apple/orange/' file.txtএটি প্রথম "apple" শব্দটি "orange" দিয়ে প্রতিস্থাপন করবে এবং পরবর্তী "apple" শব্দগুলো অপরিবর্তিত থাকবে।
উদাহরণ 2: Global Substitution
যদি আপনি একই কাজ করতে চান তবে গ্লোবাল ভাবে, অর্থাৎ, সব "apple" শব্দকে "orange" দিয়ে প্রতিস্থাপন করতে চান, তাহলে:
sed 's/apple/orange/g' file.txtএটি ফাইলের সব "apple" শব্দকে "orange"-এ পরিবর্তন করবে।
In-place Substitution (ইন-প্লেস প্রতিস্থাপন)
যদি আপনি ফাইলে সরাসরি পরিবর্তন করতে চান, তাহলে -i অপশন ব্যবহার করতে পারেন।
উদাহরণ:
sed -i 's/cat/dog/g' file.txtএটি file.txt ফাইলে সব "cat" শব্দকে "dog"-এ প্রতিস্থাপন করবে এবং তা সরাসরি সেভ করবে।
Conclusion
- Simple Substitution শুধুমাত্র প্রথম occurrence বা প্রথম প্যাটার্নের পরিবর্তন করে।
- Global Substitution ফাইলে বা লাইনে সব occurrences বা প্যাটার্নের পরিবর্তন করে।
- Global Substitution যখন ব্যবহৃত হয়, তখন
gফ্ল্যাগ ব্যবহার করা হয় যাতে একাধিক পরিবর্তন করা যায়।
Read more