Sed (Stream Editor) এর মাধ্যমে Reusable Sed Scripts তৈরি করা একটি কার্যকর পদ্ধতি, যা আপনাকে একাধিক টেক্সট ম্যানিপুলেশন বা প্রক্রিয়া সহজে পুনরায় ব্যবহার করতে সহায়তা করে। যখন আপনি একটি কাজ বারবার করতে চান, যেমন একাধিক ফাইলে একই ধরনের পরিবর্তন, তখন স্ক্রিপ্ট তৈরি করা সবচেয়ে ভাল পন্থা। Reusable Sed Scripts তৈরি করার মাধ্যমে আপনার কাজ অনেক দ্রুত এবং সঠিকভাবে সম্পন্ন হয়।
এখানে Reusable Sed Scripts তৈরি করার প্রক্রিয়া, কিভাবে এগুলি ব্যবহার করবেন এবং এর উপকারিতা সম্পর্কে বিস্তারিত আলোচনা করা হল।
Reusable Sed Scripts তৈরি করার প্রক্রিয়া
1. Sed Script ফাইল তৈরি করা
Sed স্ক্রিপ্ট তৈরি করার জন্য প্রথমে আপনাকে একটি স্ক্রিপ্ট ফাইল তৈরি করতে হবে, যেখানে আপনি সব Sed কমান্ড সংরক্ষণ করবেন। এটি একটি সাধারণ টেক্সট ফাইল হতে পারে, যেমন script.sed।
উদাহরণ:
echo 's/cat/dog/g' > script.sed
echo 's/fish/seafood/g' >> script.sed
echo '2d' >> script.sedএটি একটি script.sed ফাইল তৈরি করবে যেখানে তিনটি Sed কমান্ড থাকবে:
- "cat" শব্দকে "dog"-এ পরিবর্তন।
- "fish" শব্দকে "seafood"-এ পরিবর্তন।
- দ্বিতীয় লাইনটি মুছে ফেলা।
2. Sed Script ফাইল ব্যবহার করা
এখন আপনি যেকোনো ফাইলের উপর এই স্ক্রিপ্টটি ব্যবহার করতে পারবেন। এর জন্য আপনাকে -f (file) অপশন ব্যবহার করতে হবে, যা Sed কে আপনার স্ক্রিপ্ট ফাইলটি ব্যবহার করতে বলে।
উদাহরণ:
sed -f script.sed input.txtএটি input.txt ফাইলের উপর script.sed ফাইলের সমস্ত কমান্ড প্রয়োগ করবে।
3. স্ক্রিপ্টে মন্তব্য ব্যবহার করা
Sed স্ক্রিপ্টে commenting করা খুবই গুরুত্বপূর্ণ, বিশেষ করে যখন স্ক্রিপ্টটি বড় বা জটিল হয়ে যায়। Sed স্ক্রিপ্টে মন্তব্য করতে # ব্যবহার করা হয়।
উদাহরণ:
# This script replaces 'cat' with 'dog' and 'fish' with 'seafood'
s/cat/dog/g
s/fish/seafood/gএটি স্ক্রিপ্টের অংশ হিসেবে মন্তব্য যোগ করবে, যা স্ক্রিপ্টটি পড়তে সহজ এবং বোধগম্য করে।
4. শর্তাধীন কার্যাবলী (Conditional Commands) ব্যবহার করা
আপনি একটি Sed স্ক্রিপ্টে শর্তাধীন কমান্ডও ব্যবহার করতে পারেন, যেমন t (test) এবং b (branch) কমান্ড। এতে করে আপনি শুধুমাত্র নির্দিষ্ট শর্তে স্ক্রিপ্টের কার্যাবলী পরিচালনা করতে পারেন।
উদাহরণ:
# If the line contains 'cat', replace it with 'dog'
sed '/cat/ t; s/cat/dog/g' input.txtএই স্ক্রিপ্টটি "cat" শব্দ মেলে এমন লাইনগুলোকে "dog"-এ প্রতিস্থাপন করবে।
5. স্ক্রিপ্ট ফাইলের মধ্যে একাধিক কমান্ড
একটি স্ক্রিপ্ট ফাইলে একাধিক Sed কমান্ড সংযুক্ত করতে ; ব্যবহার করুন। এতে স্ক্রিপ্টের মধ্যে একাধিক কাজ করার সুযোগ থাকে।
উদাহরণ:
# This script will:
# 1. Replace 'cat' with 'dog'
# 2. Replace 'fish' with 'seafood'
# 3. Delete the second line
s/cat/dog/g; s/fish/seafood/g; 2dএটি একসাথে তিনটি কমান্ড একে একে প্রয়োগ করবে: "cat" শব্দকে "dog"-এ, "fish" শব্দকে "seafood"-এ এবং দ্বিতীয় লাইনটি মুছে ফেলবে।
Reusable Sed Scripts এর সুবিধা
- টাইম সেভিং: একবার একটি স্ক্রিপ্ট তৈরি করলে, আপনি যেকোনো সময় তা ব্যবহার করতে পারবেন, এতে সময় বাঁচবে।
- এম্প্লিমেন্টেশন সিমপ্লিফিকেশন: স্ক্রিপ্টের মাধ্যমে একাধিক কাজ একসাথে করা সহজ হয়ে যায়, এবং কমান্ডের সংখ্যা কমে যায়।
- একমাত্রিক কনফিগারেশন: স্ক্রিপ্টের মাধ্যমে আপনি একাধিক ফাইলের জন্য একই পরিবর্তন করতে পারেন, এতে একধরনের স্ট্যান্ডার্ড কার্যক্রম নিশ্চিত হয়।
- ত্রুটি কমানো: একাধিক ফাইলে একই স্ক্রিপ্ট ব্যবহার করলে ভুল বা ত্রুটি করার সম্ভাবনা কমে যায়, কারণ আপনি একই কমান্ডের মাধ্যমে একাধিক জায়গায় পরিবর্তন করবেন।
6. Sed স্ক্রিপ্টে ফাংশন বা লুপ ব্যবহার (Advanced)
Sed তে ফাংশন বা লুপ যেমন ব্যবহার করা সম্ভব নয়, তবে আপনি যদি স্ক্রিপ্টের মধ্যে কিছু পুনরাবৃত্তি চান, তাহলে স্ক্রিপ্টকে একাধিক কমান্ড দিয়ে স্ট্রাকচার করতে পারেন। একাধিক কমান্ডের মধ্যে N (Next) কমান্ড ব্যবহার করে একাধিক লাইন একসাথে নিয়ে কাজ করা সম্ভব।
উদাহরণ:
sed ':a; N; $!ba; s/\n/ /g' input.txtএটি সমস্ত লাইনকে একত্রিত করবে এবং প্রতি লাইনের মাঝে থাকা নতুন লাইনটি স্পেস দিয়ে প্রতিস্থাপন করবে।
7. স্ক্রিপ্টের মাধ্যমে ইনপুট/আউটপুট ফাইল এক্সপোর্ট করা
Sed স্ক্রিপ্ট ব্যবহার করার সময় আপনি আউটপুট ফাইল নির্দিষ্ট করতে পারেন। আপনি স্ক্রিপ্টটি চালিয়ে আউটপুট সেভ করতে পারেন এবং ইনপুট ফাইলও পাঠাতে পারেন।
উদাহরণ:
sed -f script.sed input.txt > output.txtএটি input.txt ফাইলের উপর script.sed স্ক্রিপ্ট প্রয়োগ করবে এবং আউটপুটটি output.txt ফাইলে সেভ করবে।
Conclusion
- Reusable Sed Scripts তৈরি করার মাধ্যমে আপনি একাধিক ফাইল বা টাস্কের জন্য একই ধরনের পরিবর্তন করতে পারেন এবং সময় ও প্রচেষ্টা বাঁচাতে পারেন।
- স্ক্রিপ্টে মন্তব্য এবং শর্তাধীন কমান্ড ব্যবহার করে আপনি স্ক্রিপ্টের কার্যকারিতা সহজে বুঝতে পারবেন।
- Sed স্ক্রিপ্টে একাধিক কমান্ড এবং বিভিন্ন Regular Expressions ব্যবহার করে আপনি যেকোনো ধরনের টেক্সট প্রক্রিয়া বা ম্যানিপুলেশন করতে পারেন।
Read more