Sed (Stream Editor) এ chained commands ব্যবহার করে আপনি একাধিক পরিবর্তন বা কমান্ড একসাথে কার্যকর করতে পারেন। এই চেইনড কমান্ডগুলো ব্যবহার করে আপনি ফাইলের মধ্যে অনেক জটিল এডিটিং কাজ করতে পারবেন। একাধিক কমান্ডকে একসাথে ব্যবহার করা complex editing বা জটিল পরিবর্তনগুলো সহজ করে তোলে, বিশেষ করে যখন আপনি একাধিক পরিবর্তন একই সময়ে করতে চান।
Chained Commands এর মৌলিক ধারণা
Sed এ chained commands ব্যবহার করার মাধ্যমে আপনি একাধিক কমান্ড একসাথে চালাতে পারেন, যেমন:
- Multiple substitutions (একাধিক প্রতিস্থাপন)
- Deleting lines (লাইন মুছে ফেলা)
- Inserting lines (লাইন যোগ করা)
এটি -e অপশন ব্যবহার করে করা হয়, যা Sed কে একাধিক কমান্ড প্রয়োগ করতে নির্দেশ দেয়।
Chained Commands এর সিনট্যাক্স
sed -e 'command1' -e 'command2' file.txtএখানে:
-e: এটি Sed কে নির্দেশ দেয় একাধিক কমান্ড একসাথে প্রয়োগ করার জন্য।command1,command2: আপনি যে সমস্ত Sed কমান্ড চালাতে চান, যেমন প্রতিস্থাপন, মুছে ফেলা, যোগ করা ইত্যাদি।file.txt: আপনার সেই টেক্সট ফাইল যা আপনি পরিবর্তন করতে চান।
Chained Commands এর উদাহরণ
উদাহরণ 1: একাধিক প্রতিস্থাপন (Multiple Substitutions)
আপনি যদি একই লাইনে একাধিক শব্দ পরিবর্তন করতে চান, তবে চেইনড কমান্ড ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, "cat" শব্দটি "dog" দিয়ে এবং "bat" শব্দটি "rat" দিয়ে প্রতিস্থাপন করতে:
sed -e 's/cat/dog/' -e 's/bat/rat/' file.txtএটি file.txt ফাইলে প্রথম "cat" শব্দটি "dog"-এ এবং "bat" শব্দটি "rat"-এ পরিবর্তন করবে।
উদাহরণ 2: লাইন মুছে ফেলা এবং প্রতিস্থাপন (Delete Lines and Replace)
ধরা যাক, আপনি file.txt ফাইলে দ্বিতীয় লাইনটি মুছে ফেলতে চান এবং একই সময়ে "hello" শব্দটি "hi" দিয়ে প্রতিস্থাপন করতে চান। এটি চেইনড কমান্ড দিয়ে করা যেতে পারে:
sed -e '2d' -e 's/hello/hi/g' file.txtএটি:
2dদিয়ে দ্বিতীয় লাইন মুছে ফেলবে,- তারপর
s/hello/hi/gদিয়ে ফাইলে সব "hello" শব্দগুলোকে "hi"-তে পরিবর্তন করবে।
উদাহরণ 3: লাইন যোগ করা এবং প্রতিস্থাপন (Insert Line and Replace)
আপনি যদি একটি লাইন যোগ করতে চান এবং সেই লাইনগুলির মধ্যে প্রতিস্থাপন করতে চান, তবে সেটি চেইনড কমান্ডে করা যেতে পারে। উদাহরণস্বরূপ, প্রথম লাইনের পরে "New Line Added" যোগ করতে এবং "cat" শব্দটি "dog" দিয়ে প্রতিস্থাপন করতে:
sed -e '1a New Line Added' -e 's/cat/dog/g' file.txtএটি:
1a New Line Addedদ্বারা প্রথম লাইনের পরে "New Line Added" যোগ করবে,- এবং
s/cat/dog/gদ্বারা ফাইলে সব "cat" শব্দগুলো "dog"-এ পরিবর্তন করবে।
উদাহরণ 4: একাধিক লাইনের মুছে ফেলা (Multiple Lines Deletion)
যদি আপনি একাধিক নির্দিষ্ট লাইন মুছে ফেলতে চান, যেমন দ্বিতীয় এবং চতুর্থ লাইন, আপনি চেইনড কমান্ড ব্যবহার করতে পারেন:
sed -e '2d' -e '4d' file.txtএটি file.txt থেকে দ্বিতীয় এবং চতুর্থ লাইন দুটি মুছে ফেলবে।
উদাহরণ 5: ফাইলের একাধিক অংশে পরিবর্তন করা (Multiple Edits Across the File)
ধরা যাক, আপনি file.txt ফাইলে "cat" শব্দটিকে "dog" দিয়ে প্রতিস্থাপন করতে চান এবং একই সময়ে "bat" শব্দটিকে "rat"-এ প্রতিস্থাপন করতে চান। তবে, আপনি দুটি আলাদা কমান্ডের মাধ্যমে একসাথে এটি করতে পারবেন:
sed -e 's/cat/dog/g' -e 's/bat/rat/g' file.txtএটি file.txt ফাইলে সব "cat" শব্দগুলোকে "dog"-এ এবং সব "bat" শব্দগুলোকে "rat"-এ প্রতিস্থাপন করবে।
Advanced Chained Commands Example
ধরা যাক, আপনি file.txt থেকে:
- "cat" শব্দটিকে "dog" দিয়ে প্রতিস্থাপন করতে চান,
- "hello" শব্দটি "hi" দিয়ে প্রতিস্থাপন করতে চান,
- এবং যদি কোনো লাইন খালি থাকে, তাহলে সেটি মুছে ফেলতে চান।
এটি চেইনড কমান্ড দিয়ে করা যাবে:
sed -e 's/cat/dog/g' -e 's/hello/hi/g' -e '/^$/d' file.txtএটি:
- "cat" শব্দকে "dog"-এ পরিবর্তন করবে,
- "hello" শব্দকে "hi"-তে পরিবর্তন করবে,
- এবং সব খালি লাইন (যেগুলোর মধ্যে কিছুই নেই) মুছে ফেলবে।
In-place Editing with Chained Commands
যদি আপনি একাধিক পরিবর্তন করতে চান এবং সেগুলো ফাইলে সরাসরি সেভ করতে চান, তবে -i অপশন ব্যবহার করবেন। উদাহরণস্বরূপ:
sed -i -e 's/cat/dog/g' -e 's/bat/rat/g' file.txtএটি file.txt ফাইলে সব "cat" শব্দগুলো "dog"-এ এবং সব "bat" শব্দগুলো "rat"-এ প্রতিস্থাপন করবে এবং তা সরাসরি ফাইলের মধ্যে সেভ করবে।
Conclusion
- Chained Commands ব্যবহার করে আপনি একাধিক Sed কমান্ড একসাথে চালাতে পারেন, যা complex editing বা জটিল টেক্সট পরিবর্তনগুলিকে সহজ করে তোলে।
- আপনি substitution, deletion, insertion, এবং অন্যান্য Sed অপারেশন একত্রে ব্যবহার করে একযোগভাবে ফাইলের মধ্যে বিভিন্ন পরিবর্তন করতে পারবেন।
-eঅপশন ব্যবহার করে কমান্ড চেইন তৈরি করা যায় এবং-iঅপশন ব্যবহার করে ইন-প্লেস পরিবর্তন করা সম্ভব।
Read more