Multiple Editing (মাল্টিপল এডিটিং) এবং Chained Commands (চেইনড কমান্ডস) হল এমন দুটি শক্তিশালী বৈশিষ্ট্য যা Sed (Stream Editor) ব্যবহারকারীদের একাধিক কমান্ড একসাথে চালানোর সুযোগ দেয়। এর মাধ্যমে আপনি একাধিক পরিবর্তন একসঙ্গে করতে পারেন বা একাধিক কমান্ড একের পর এক চালিয়ে ফাইল বা স্ট্রিমে বিভিন্ন ধরনের কাজ সম্পাদন করতে পারেন।
Multiple Editing in Sed (মাল্টিপল এডিটিং)
Multiple Editing এর মাধ্যমে আপনি একাধিক Sed কমান্ড একসাথে ব্যবহার করতে পারেন। এটি আপনাকে একবারে একাধিক পরিবর্তন করতে সাহায্য করে, ফলে ফাইলের মধ্যে একাধিক টেক্সট পরিবর্তন প্রক্রিয়াটি আরও দ্রুত এবং কার্যকর হয়ে ওঠে। Sed এর -e অপশন ব্যবহার করে একাধিক কমান্ড প্রয়োগ করা হয়।
Multiple Editing Syntax (মাল্টিপল এডিটিং সিনট্যাক্স)
সিনট্যাক্স:
sed -e 'command1' -e 'command2' file.txtএখানে:
-eঅপশনটি একাধিক কমান্ড ব্যবহার করার জন্য।command1,command2: এগুলি হলো একাধিক Sed কমান্ড।file.txt: ফাইলটি যেখানে কমান্ডগুলো প্রয়োগ হবে।
Multiple Editing এর উদাহরণ
একাধিক প্রতিস্থাপন (Multiple Substitutions):
আপনি একটি ফাইলে একাধিক শব্দ বা প্যাটার্ন প্রতিস্থাপন করতে পারেন একসাথে।কমান্ড:
sed -e 's/cat/dog/' -e 's/bird/fish/' file.txtব্যাখ্যা: এই কমান্ডটি
file.txtফাইলের প্রথমে "cat"-কে "dog"-এ এবং তারপর "bird"-কে "fish"-এ প্রতিস্থাপন করবে।একাধিক লাইন মুছে ফেলা (Multiple Line Deletion):
আপনি একাধিক লাইন মুছতেও একইভাবে একাধিক কমান্ড ব্যবহার করতে পারেন।কমান্ড:
sed -e '1d' -e '3d' file.txtব্যাখ্যা: এটি
file.txtফাইলের প্রথম এবং তৃতীয় লাইনগুলো মুছে ফেলবে।একাধিক লাইন যোগ করা (Multiple Line Insertion):
একাধিক লাইন একটি নির্দিষ্ট জায়গায় যোগ করতে পারেন।কমান্ড:
sed -e '2a This is a new line' -e '4a Another new line' file.txtব্যাখ্যা: এটি
file.txtফাইলের দ্বিতীয় লাইনের পরে "This is a new line" এবং চতুর্থ লাইনের পরে "Another new line" যোগ করবে।
Chained Commands in Sed (চেইনড কমান্ডস)
Chained Commands (চেইনড কমান্ডস) হল একটি প্রক্রিয়া যেখানে আপনি একাধিক Sed কমান্ড একসাথে ব্যবহার করেন, যাতে একাধিক কমান্ড sequentially (ধাপে ধাপে) কার্যকর হয়। একাধিক কমান্ডকে একটি একক Sed স্ক্রিপ্টের মধ্যে একত্রিত করা হয়। Sed এ চেইনড কমান্ডস একটি কমান্ডের পর আরেকটি কমান্ড চালানোর মাধ্যমে একাধিক কাজ সম্পাদন করতে সাহায্য করে।
Sed এ চেইনড কমান্ডগুলি সাধারণত সেমিকোলন (;) দ্বারা আলাদা করা হয়।
Chained Commands Syntax (চেইনড কমান্ডস সিনট্যাক্স)
সিনট্যাক্স:
sed 'command1; command2' file.txtএখানে:
command1,command2: দুটি বা তার অধিক Sed কমান্ড।;: সেমিকোলন দ্বারা আলাদা করা হয় চেইনড কমান্ডগুলি।file.txt: ফাইলের নাম যেখানে কমান্ডগুলো প্রয়োগ হবে।
Chained Commands এর উদাহরণ
একাধিক পরিবর্তন (Multiple Changes):
আপনি একসাথে কয়েকটি পরিবর্তন করতে চেইনড কমান্ড ব্যবহার করতে পারেন।কমান্ড:
sed 's/cat/dog/; s/bird/fish/' file.txtব্যাখ্যা: এই কমান্ডটি
file.txtফাইলে "cat"-কে "dog"-এ এবং "bird"-কে "fish"-এ প্রতিস্থাপন করবে।একাধিক লাইন মুছে ফেলা এবং প্রতিস্থাপন (Multiple Deletion and Substitution):
একাধিক কাজ একসাথে করতে আপনি চেইনড কমান্ড ব্যবহার করতে পারেন।কমান্ড:
sed '2d; s/cat/dog/' file.txtব্যাখ্যা: এটি প্রথমে
file.txtফাইলের দ্বিতীয় লাইনটি মুছে ফেলবে এবং পরে "cat"-কে "dog"-এ প্রতিস্থাপন করবে।একাধিক লাইন যোগ করা এবং প্রতিস্থাপন (Multiple Insertion and Substitution):
আপনি একাধিক স্থানে লাইন যোগ এবং প্রতিস্থাপন করতে চেইনড কমান্ড ব্যবহার করতে পারেন।কমান্ড:
sed '2a This is a new line; s/cat/dog/' file.txtব্যাখ্যা: এটি
file.txtফাইলের দ্বিতীয় লাইনের পরে "This is a new line" যোগ করবে এবং পরে "cat"-কে "dog"-এ প্রতিস্থাপন করবে।
সারাংশ
Multiple Editing এবং Chained Commands Sed এর শক্তিশালী বৈশিষ্ট্য যা আপনাকে একাধিক কমান্ড একসাথে ব্যবহার করার সুবিধা দেয়। Multiple Editing এর মাধ্যমে আপনি একাধিক Sed কমান্ড একসাথে কার্যকর করতে পারেন, এবং Chained Commands এর মাধ্যমে একাধিক কমান্ডকে একটি সিকোয়েন্সে সাজিয়ে প্রয়োগ করতে পারেন। এগুলি Sed ব্যবহারকারীদের আরও উন্নত এবং দ্রুত টেক্সট ম্যানিপুলেশন এবং ফাইল প্রক্রিয়াকরণ করতে সহায়তা করে।
Sed (Stream Editor) এ একাধিক কমান্ড একসাথে চালানোর জন্য আপনি কিছু পদ্ধতি ব্যবহার করতে পারেন। Sed এ একাধিক কমান্ড চালানোর জন্য আপনি -e অপশন ব্যবহার করতে পারেন, অথবা একাধিক কমান্ড একটি স্ক্রিপ্ট ফাইলে লিখে Sed দিয়ে সেই স্ক্রিপ্ট চালাতে পারেন।
1. -e অপশন দিয়ে একাধিক Sed কমান্ড চালানো
Sed এর -e অপশন ব্যবহার করে আপনি একাধিক কমান্ড একসাথে চালাতে পারেন। প্রতিটি কমান্ডকে -e দিয়ে আলাদা করা হয়।
সিনট্যাক্স:
sed -e 'command1' -e 'command2' input-fileউদাহরণ:
ধরা যাক, আপনি একটি ফাইলে প্রথম "cat" শব্দটি "dog"-এ প্রতিস্থাপন করতে চান এবং পরে দ্বিতীয় লাইনে কিছু টেক্সট যোগ করতে চান। আপনি এটি -e অপশন দিয়ে একসাথে করতে পারেন।
sed -e 's/cat/dog/' -e '2a This is a new line' file.txtএটি file.txt ফাইলের প্রথম "cat" শব্দটি "dog"-এ পরিবর্তন করবে এবং দ্বিতীয় লাইনে "This is a new line" যোগ করবে।
2. একাধিক কমান্ড স্ক্রিপ্ট ফাইলের মাধ্যমে চালানো
Sed এ একাধিক কমান্ড স্ক্রিপ্ট ফাইলের মধ্যে লিখে সেই ফাইলকে Sed এর ইনপুট হিসেবে ব্যবহার করা যায়। এভাবে আপনি অনেকগুলো কমান্ড একসাথে চালাতে পারবেন।
সিনট্যাক্স:
sed -f script-file input-fileএখানে script-file হলো একটি টেক্সট ফাইল যা Sed কমান্ডের একটি তালিকা ধারণ করে।
উদাহরণ:
ধরা যাক, আপনার একটি স্ক্রিপ্ট ফাইল commands.sed তৈরি করতে হবে যেখানে একাধিক Sed কমান্ড থাকবে। আপনি এই ফাইলে নিম্নলিখিত কমান্ডগুলো রাখতে পারেন:
commands.sed ফাইলের ভিতর:
s/cat/dog/
2a This is a new lineএখন, আপনি এই স্ক্রিপ্ট ফাইলটি চালাতে পারেন:
sed -f commands.sed file.txtএটি file.txt ফাইলে প্রথম "cat" শব্দটি "dog"-এ পরিবর্তন করবে এবং দ্বিতীয় লাইনে "This is a new line" যোগ করবে।
3. সেমিকোলন (;) দিয়ে একাধিক কমান্ড চালানো
Sed কমান্ডের মধ্যে সেমিকোলন (;) ব্যবহার করে একাধিক কমান্ড একটি লাইনে চালানো যেতে পারে।
সিনট্যাক্স:
sed 'command1; command2' input-fileউদাহরণ:
ধরা যাক, আপনি একই লাইনে দুটি কমান্ড চালাতে চান: প্রথমে "cat" শব্দটি "dog"-এ প্রতিস্থাপন এবং পরবর্তীতে তৃতীয় লাইনে "New line added" যোগ করতে চান।
sed 's/cat/dog/; 3a New line added' file.txtএটি file.txt ফাইলে প্রথম "cat" শব্দটিকে "dog"-এ প্রতিস্থাপন করবে এবং তৃতীয় লাইনে "New line added" যোগ করবে।
4. একাধিক কমান্ড চেইনিং
Sed এ একাধিক কমান্ড চেইন করতে একাধিক -e অপশনও ব্যবহার করা যায়। যেমন আপনি একটি কমান্ডের ফলাফল পরবর্তী কমান্ডে ব্যবহার করতে পারেন।
উদাহরণ:
sed -e 's/cat/dog/' -e 's/dog/elephant/' file.txtএটি file.txt ফাইলে প্রথমে "cat" শব্দটিকে "dog"-এ এবং তারপর সেই "dog" শব্দটিকে "elephant"-এ পরিবর্তন করবে।
সারাংশ
Sed এ একাধিক কমান্ড একসাথে চালানোর জন্য আপনি কয়েকটি পদ্ধতি ব্যবহার করতে পারেন:
-eঅপশন দিয়ে একাধিক কমান্ড চালানো।- স্ক্রিপ্ট ফাইল ব্যবহার করে একাধিক কমান্ড চালানো।
;সেমিকোলন দিয়ে একাধিক কমান্ড একই লাইনে চালানো।- কমান্ড চেইনিং ব্যবহার করে একাধিক কমান্ড একে অপরের ফলাফলের উপর ভিত্তি করে চালানো।
এভাবে Sed এর মাধ্যমে আপনি একাধিক কমান্ড একসাথে খুব সহজেই কার্যকরভাবে চালাতে পারেন।
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অপশন ব্যবহার করে ইন-প্লেস পরিবর্তন করা সম্ভব।
Sed (Stream Editor) ব্যবহার করে আপনি chained commands এবং scripts তৈরি করতে পারেন যা টেক্সট ফাইল বা স্ট্রিমের মধ্যে complex editing করতে সহায়তা করে। চেইনড কমান্ডগুলি Sed-এ একাধিক কমান্ড একসাথে চালানোর একটি পদ্ধতি, যেখানে একাধিক টেক্সট পরিবর্তন বা সংশোধন একে অপরের সাথে সংযুক্ত থাকে।
এছাড়া, Sed scripts আপনাকে একাধিক Sed কমান্ড একসাথে একটি স্ক্রিপ্টের মধ্যে সংরক্ষণ করার সুযোগ দেয়, যা পরে পুনরায় ব্যবহার করা যায় এবং পুনরায় ব্যবহারযোগ্য কমান্ডগুলিকে তৈরি করতে সহায়ক হয়।
1. Chained Commands ব্যবহার করে Complex Editing
Sed-এ চেইনড কমান্ডগুলির মাধ্যমে একাধিক কমান্ড একসাথে চালানো সম্ভব। আপনি -e অপশন ব্যবহার করে একাধিক Sed কমান্ড সংযুক্ত করতে পারেন, যা একই ফাইলে একাধিক টেক্সট পরিবর্তন করে। এই ধরনের কমান্ড সাধারণত যখন একাধিক টেক্সট পরিবর্তন করতে হয় তখন ব্যবহৃত হয়।
সিনট্যাক্স:
sed -e 'command1' -e 'command2' file.txtএখানে:
command1এবংcommand2হলো Sed কমান্ড।file.txtহলো সেই ফাইল যা আপনি পরিবর্তন করতে চান।
উদাহরণ:
ধরা যাক, আপনি একটি ফাইলে প্রথমে সব "cat" শব্দকে "dog"-এ প্রতিস্থাপন করতে চান, তারপর সমস্ত "fish" শব্দকে "shark"-এ পরিবর্তন করতে চান। আপনি এটি একটি চেইনড কমান্ডের মাধ্যমে করতে পারেন:
sed -e 's/cat/dog/g' -e 's/fish/shark/g' file.txtএটি প্রথমে file.txt ফাইলে সব "cat" শব্দকে "dog"-এ প্রতিস্থাপন করবে এবং পরবর্তীতে সব "fish" শব্দকে "shark"-এ প্রতিস্থাপন করবে।
আরেকটি উদাহরণ:
আপনি যদি প্রথমে কোনো লাইন মুছে ফেলার পর অন্য একটি লাইন যোগ করতে চান:
sed -e '2d' -e '3a New line added here' file.txtএটি:
2d: দ্বিতীয় লাইনটি মুছে ফেলবে।3a: তৃতীয় লাইনের পর একটি নতুন লাইন যোগ করবে।
2. Sed Scripts এর মাধ্যমে Reusable Commands তৈরি করা
Sed স্ক্রিপ্ট হলো একটি ফাইল যেখানে একাধিক Sed কমান্ড সংরক্ষিত থাকে। এটি reusable commands তৈরির একটি দারুণ উপায়, কারণ আপনি একাধিক টেক্সট পরিবর্তন বা প্রক্রিয়া এক জায়গায় সংরক্ষণ করে সেগুলো পুনরায় ব্যবহার করতে পারেন।
Sed Script তৈরি করা:
- একটি ফাইল তৈরি করুন যেখানে আপনার সমস্ত Sed কমান্ড থাকবে। উদাহরণস্বরূপ, "myscript.sed" নামক একটি স্ক্রিপ্ট ফাইল তৈরি করুন।
echo "s/cat/dog/g" > myscript.sed
echo "s/fish/shark/g" >> myscript.sedএটি দুটি Sed কমান্ড তৈরি করবে:
- প্রথমটি "cat" শব্দকে "dog"-এ প্রতিস্থাপন করবে।
- দ্বিতীয়টি "fish" শব্দকে "shark"-এ প্রতিস্থাপন করবে।
- Sed Script চালানো:
একবার Sed স্ক্রিপ্ট ফাইল তৈরি হলে, আপনি এটি কমান্ড লাইনে ব্যবহার করতে পারেন:
sed -f myscript.sed file.txtএখানে:
-fঅপশনটি Sed স্ক্রিপ্ট ফাইলের পথ নির্দেশ করে।file.txtহলো সেই ফাইল যেখানে কমান্ডগুলির কার্যকারিতা প্রয়োগ করা হবে।
Sed Script উদাহরণ:
ধরা যাক, আপনার একটি স্ক্রিপ্ট ফাইল "myscript.sed" আছে, যেখানে কিছু অতিরিক্ত কমান্ড রয়েছে যেমন:
- একটি নির্দিষ্ট শব্দ প্রতিস্থাপন।
- একটি লাইন মুছে ফেলা।
- একটি নতুন লাইন যোগ করা।
myscript.sed ফাইল:
s/cat/dog/g
s/fish/shark/g
2d
3a New line added hereএটি একটি ফাইলের মধ্যে:
- সব "cat" শব্দকে "dog"-এ,
- সব "fish" শব্দকে "shark"-এ,
- দ্বিতীয় লাইনটি মুছে ফেলে,
- তৃতীয় লাইনের পরে একটি নতুন লাইন যোগ করবে।
এখন, আপনি এটি এইভাবে চালাতে পারবেন:
sed -f myscript.sed file.txt3. Sed Scripts এ Variable ব্যবহার
Sed স্ক্রিপ্টের মধ্যে variables ব্যবহার করাও সম্ভব। এর মাধ্যমে আপনি স্ক্রিপ্টে ব্যবহারকারী নির্ধারিত মান ব্যবহার করতে পারেন। তবে, এটি shell scripting এর সাথে যুক্ত করতে হয়।
উদাহরণ:
ধরা যাক, আপনি একটি স্ক্রিপ্ট তৈরি করছেন যা একটি variable নিয়ে কাজ করবে। আপনি একটি shell script এর মধ্যে variable ব্যবহার করতে পারেন এবং সেই অনুযায়ী Sed কমান্ড চালাতে পারেন।
#!/bin/bash
word="cat"
sed "s/$word/dog/g" file.txtএখানে:
$wordপরিবর্তনশীলটি "cat" ধারণ করে, এবং এটিsedকমান্ডে ব্যবহার করা হয়।
4. Sed Scripts ব্যবহার করে Bulk Text Editing
একটি Sed স্ক্রিপ্ট ব্যবহার করে আপনি অনেক টেক্সট পরিবর্তন একসাথে করতে পারেন, বিশেষত যদি আপনার অনেক ফাইল বা বড় ডেটা থাকে। একটি স্ক্রিপ্টের মাধ্যমে আপনি অনেক টেক্সট পরিবর্তন সহজেই সম্পন্ন করতে পারেন।
উদাহরণ:
ধরা যাক, আপনি একটি স্ক্রিপ্ট তৈরি করেছেন যা একটি ফাইলে বিভিন্ন ধরনের পরিবর্তন করবে:
#!/bin/bash
sed -e 's/cat/dog/g' -e 's/fish/shark/g' -e '2d' -e '3a New line here' file.txtএটি:
- "cat" শব্দকে "dog"-এ,
- "fish" শব্দকে "shark"-এ,
- দ্বিতীয় লাইনটি মুছে ফেলবে,
- তৃতীয় লাইনের পর একটি নতুন লাইন যোগ করবে।
Conclusion
- Chained commands Sed ব্যবহার করে আপনি একাধিক কমান্ড একসাথে চালাতে পারেন, যা ফাইলের মধ্যে একাধিক পরিবর্তন করতে সহায়তা করে।
- Sed scripts আপনাকে একাধিক কমান্ড একত্রে একটি স্ক্রিপ্টে সংরক্ষণ করে পুনরায় ব্যবহারযোগ্য করে তোলে। এটি বিশেষভাবে বড় এবং জটিল ফাইল ম্যানিপুলেশনে সহায়ক।
- Reusable Sed commands তৈরি করা সহজ এবং দ্রুত প্রক্রিয়া সম্পাদন করতে সহায়ক, যেগুলো পুনরায় ব্যবহারের উপযোগী।
Temporary Files এবং Piping দুইটি গুরুত্বপূর্ণ কৌশল, যা Sed, awk, এবং অন্যান্য Unix/Linux টুলসের সঙ্গে ব্যবহৃত হয়ে থাকে। এই কৌশলগুলি আপনাকে টেক্সট প্রসেসিং, ফাইল ম্যানিপুলেশন এবং ডেটা প্রক্রিয়াকরণের ক্ষেত্রে খুবই কার্যকরীভাবে কাজ করতে সাহায্য করে। এখানে, আমরা Temporary Files এবং Piping এর ব্যবহার, তাদের সুবিধা, এবং বাস্তব প্রয়োগের উদাহরণ নিয়ে আলোচনা করবো।
Temporary Files এর ব্যবহার
Temporary Files (অস্থায়ী ফাইল) হলো এমন ফাইল যা মূলত টেম্পোরারি বা সাময়িক ব্যবহারের জন্য তৈরি করা হয় এবং পরবর্তী সময়ে মুছে ফেলা হয়। এই ফাইলগুলি সাধারণত কাজের ফলাফল স্টোর করার জন্য ব্যবহৃত হয়, যখন ফলাফলটি পরবর্তী কোনো প্রসেসে ব্যবহার করা হয়। প্রোগ্রামিং বা কমান্ড লাইন স্ক্রিপ্টিংয়ে যখন ফলাফল স্টোর করতে বা প্রক্রিয়াকরণ করার জন্য কিছু ডেটা প্রয়োজন হয়, তখন temporary files একটি ভালো সমাধান হতে পারে।
Temporary Files এর উদাহরণ
Sed এর মাধ্যমে ফলাফল সাময়িকভাবে সংরক্ষণ করা:
Sed এর আউটপুট যদি বড় বা জটিল হয়, তবে আপনি এটি একটি অস্থায়ী ফাইলে সংরক্ষণ করতে পারেন। এই ফাইলটি পরবর্তী প্রক্রিয়াতে ব্যবহার করা যেতে পারে এবং শেষে মুছে ফেলা হয়।কমান্ড উদাহরণ:
sed 's/apple/fruit/g' input.txt > tempfile.txtএখানে:
sed 's/apple/fruit/g' input.txt:input.txtফাইলের মধ্যে "apple" শব্দকে "fruit"-এ প্রতিস্থাপন করে।> tempfile.txt: এর আউটপুটটি tempfile.txt নামের একটি অস্থায়ী ফাইলে রিডাইরেক্ট (write) করা হচ্ছে।
আপনি পরে এই ফাইলের উপর আরও অপারেশন করতে পারেন:
sed 's/fruit/banana/g' tempfile.txt > final_output.txtএবং শেষে, আপনি অস্থায়ী ফাইলটি মুছে ফেলতে পারেন:
rm tempfile.txtঅস্থায়ী ফাইল তৈরি করা:
mktemp কমান্ড ব্যবহার করে আপনি একটি নিরাপদ অস্থায়ী ফাইল তৈরি করতে পারেন।কমান্ড উদাহরণ:
mktemp temp.XXXXXX.txtএটি একটি নিরাপদ অস্থায়ী ফাইল তৈরি করবে যার নাম হবে temp.XXXXXX.txt।
XXXXXXএকটি র্যান্ডম স্ট্রিং যা প্রতিটি ফাইলে ভিন্ন হবে।
Piping এর ব্যবহার
Piping হল একটি শক্তিশালী কৌশল যা একাধিক কমান্ডের আউটপুট এবং ইনপুট একে অপরের মধ্যে প্রবাহিত করে। এটি একটি কমান্ডের আউটপুটকে অন্য কমান্ডের ইনপুট হিসেবে ব্যবহার করতে সাহায্য করে, যা সাধারণত | (pipe) চিহ্নের মাধ্যমে নির্দেশিত হয়। এই কৌশলটি Sed, awk, grep সহ অনেক Unix/Linux কমান্ডের ক্ষেত্রে গুরুত্বপূর্ণ।
Piping এর উদাহরণ
Sed এবং Grep দিয়ে প্যাটার্ন অনুসন্ধান:
ধরুন, আপনি একটি ফাইলে "apple" শব্দের খোঁজ করতে চান এবং সেই লাইনে কিছু পরিবর্তন করতে চান, তাহলেgrepএবংsedএর সংমিশ্রণ ব্যবহার করা যেতে পারে।কমান্ড উদাহরণ:
grep 'apple' input.txt | sed 's/apple/fruit/g'এখানে:
grep 'apple' input.txt: এটিinput.txtফাইলে "apple" শব্দের সঙ্গে মিল থাকা সব লাইন খুঁজে বের করবে।|: এই পাইপটিgrepএর আউটপুটকেsedএর ইনপুট হিসেবে পাঠাবে।sed 's/apple/fruit/g': "apple" শব্দটি "fruit"-এ পরিবর্তন করবে।
Multiple Commands with Pipes:
একাধিক কমান্ডকে পিপিং দিয়ে সংযুক্ত করে একাধিক কাজ একসাথে করা যেতে পারে। যেমন, আপনি প্রথমেgrepদিয়ে একটি শব্দ খুঁজে তার পরsortদিয়ে আউটপুটকে সাজাতে পারেন।কমান্ড উদাহরণ:
grep 'apple' input.txt | sortএটি
input.txtথেকে "apple" শব্দের সব লাইন খুঁজে, তারপর তা সাজানো আউটপুট হিসেবে দেখাবে।প্রসেসের মধ্যে ডেটা স্থানান্তর:
আপনি একাধিক কমান্ডের মধ্যে ডেটা পাইপ করতে পারেন, যেমনawkএবংsortএর সংমিশ্রণ ব্যবহার করা:কমান্ড উদাহরণ:
awk '{print $1}' input.txt | sortএটি
input.txtথেকে প্রথম কলামটি বের করে আনে এবং তা সাজানো আউটপুট হিসেবে দেখায়।Piping with Temporary Files:
অনেক সময়, আপনি পাইপিংয়ের মাধ্যমে একাধিক কমান্ডের মাধ্যমে প্রক্রিয়া সম্পন্ন করার পর, একটি অস্থায়ী ফাইলে আউটপুট সংরক্ষণ করতে পারেন।কমান্ড উদাহরণ:
grep 'apple' input.txt | sed 's/apple/fruit/g' > tempfile.txtএখানে:
grep 'apple' input.txt:input.txtফাইলে "apple" খুঁজে বের করবে।sed 's/apple/fruit/g': "apple"-কে "fruit"-এ পরিবর্তন করবে।> tempfile.txt: আউটপুটটি tempfile.txt ফাইলে সংরক্ষণ করবে।
Sed, Temporary Files, and Piping Combination
Sed, Temporary Files, এবং Piping তিনটি একসাথে ব্যবহার করলে আপনার কাজ আরও দক্ষ এবং সহজ হয়। উদাহরণস্বরূপ, যদি আপনি অনেকগুলো টেক্সট ফাইলকে প্রক্রিয়াকরণ করতে চান এবং একে একে আউটপুট তৈরি করতে চান, তবে আপনি এই কৌশলগুলো ব্যবহার করতে পারেন।
উদাহরণ:
অস্থায়ী ফাইলে স্টোর করে পরবর্তী প্রক্রিয়াকরণের জন্য পাইপিং ব্যবহার করা:
sed 's/apple/fruit/g' input.txt > tempfile.txt cat tempfile.txt | sort | uniq > final_output.txtএখানে:
- প্রথমে,
sedকমান্ডinput.txtফাইলের "apple" শব্দগুলোকে "fruit" দিয়ে প্রতিস্থাপন করে, এবং এর আউটপুটtempfile.txtফাইলে সংরক্ষণ করে। - পরে,
catকমান্ডtempfile.txtথেকে ডেটা বের করে এবংsortএবংuniqদিয়ে সাজানো এবং একক লাইন আউটপুট দেয়। - অবশেষে,
final_output.txtফাইলে ফলাফল সংরক্ষণ করা হয়।
- প্রথমে,
সারাংশ
- Temporary Files: আপনি অস্থায়ী ফাইল ব্যবহার করে সাময়িকভাবে ডেটা সংরক্ষণ করতে পারেন, এবং পরে ওই ডেটার উপর আরও প্রক্রিয়া সম্পাদন করতে পারেন। এগুলো সাধারণত ফলাফল স্টোর করার জন্য ব্যবহার করা হয়।
- Piping: পাইপিং একটি শক্তিশালী কৌশল যা একাধিক কমান্ডের আউটপুট এবং ইনপুট একে অপরের মধ্যে প্রবাহিত করে। এটি ডেটা প্রক্রিয়াকরণকে আরও সহজ এবং কার্যকর করে তোলে।
এই দুটি কৌশল আপনার টেক্সট ম্যানিপুলেশন এবং স্ক্রিপ্টিংয়ের কার্যকারিতা অনেক বাড়িয়ে দিতে পারে।
Read more