Sed (Stream Editor) ব্যবহার করে আপনি Output Redirect করতে পারেন এবং ফাইল ম্যানিপুলেশন করতে পারেন। এটি টেক্সট প্রক্রিয়াকরণের জন্য অত্যন্ত গুরুত্বপূর্ণ, বিশেষ করে যখন আপনি টেক্সট ফাইলের মধ্যে পরিবর্তন করে সেই পরিবর্তনগুলো সরাসরি আউটপুট করতে চান অথবা অন্য ফাইলে সেভ করতে চান।
1. Output Redirect (আউটপুট রিডিরেকশন)
Sed এর মাধ্যমে আউটপুটকে একটি নতুন ফাইলে বা একটি নির্দিষ্ট স্থানান্তরের জন্য output redirect করা হয়। আপনি সাধারণত > বা >> অপশন ব্যবহার করেন আউটপুট রিডিরেক্ট করতে। এর মাধ্যমে আপনি একটি ফাইলের পরিবর্তিত ডেটা বা আউটপুট অন্য একটি ফাইলে রাখতে পারেন।
সিনট্যাক্স:
sed 'command' file.txt > output.txtএখানে:
command: Sed কমান্ড যা আপনি ফাইলে প্রয়োগ করতে চান।file.txt: ইনপুট ফাইল যেটি আপনি পরিবর্তন করতে চান।> output.txt: আউটপুট রিডিরেকশন, এটি পরিবর্তিত ডেটা output.txt ফাইলে সেভ করবে।
উদাহরণ 1: Sed এর আউটপুট নতুন ফাইলে রিডিরেক্ট করা
যদি আপনি file.txt ফাইলের মধ্যে "cat" শব্দকে "dog" দিয়ে প্রতিস্থাপন করতে চান এবং তার আউটপুট output.txt ফাইলে রাখতে চান, তাহলে:
sed 's/cat/dog/g' file.txt > output.txtএটি file.txt ফাইলে "cat" শব্দগুলোকে "dog"-এ প্রতিস্থাপন করে, এবং ফলস্বরূপ output.txt ফাইলে সেভ করবে।
উদাহরণ 2: একাধিক Sed কমান্ড ব্যবহার করে আউটপুট রিডিরেক্ট করা
আপনি একাধিক Sed কমান্ড ব্যবহার করে একই আউটপুট ফাইলে পরিবর্তন করতে পারেন:
sed -e 's/cat/dog/g' -e 's/bat/rat/g' file.txt > output.txtএটি file.txt ফাইল থেকে "cat" শব্দগুলোকে "dog"-এ এবং "bat" শব্দগুলোকে "rat"-এ প্রতিস্থাপন করবে এবং তা output.txt ফাইলে সেভ করবে।
উদাহরণ 3: আউটপুট অ্যাপেন্ড করা (Append)
যদি আপনি আউটপুটকে একটি বিদ্যমান ফাইলে যোগ করতে চান (নতুনভাবে লেখার পরিবর্তে), তাহলে >> অপশন ব্যবহার করতে হবে:
sed 's/cat/dog/g' file.txt >> existing_file.txtএটি file.txt ফাইলে "cat" শব্দগুলোকে "dog"-এ প্রতিস্থাপন করবে এবং existing_file.txt ফাইলের শেষে তা যোগ করবে।
2. ফাইল ম্যানিপুলেশন
Sed ফাইল ম্যানিপুলেশন করার জন্য বিভিন্ন কার্যক্রমের জন্য ব্যবহৃত হয়, যেমন:
- ফাইলের মধ্যে লাইনের পরিবর্তন
- নতুন লাইন যোগ করা
- নির্দিষ্ট প্যাটার্নের সাথে মিল পাওয়া লাইন মুছে ফেলা
- ইন-প্লেস ফাইল পরিবর্তন
In-place File Editing (ইন-প্লেস ফাইল পরিবর্তন)
Sed এর সাহায্যে আপনি সরাসরি ফাইলের মধ্যে পরিবর্তন করতে পারেন, যাতে আপনি আউটপুট রিডিরেক্ট না করেও ফাইলটি পরিবর্তন করতে পারবেন। এটি -i (in-place) অপশন ব্যবহার করে করা হয়।
সিনট্যাক্স:
sed -i 'command' file.txtএখানে:
-i: ইন-প্লেস পরিবর্তনের জন্য ব্যবহার হয়, অর্থাৎ ফাইলটি সরাসরি পরিবর্তন হবে।command: Sed কমান্ড যা আপনি ফাইলে প্রয়োগ করতে চান।file.txt: ইনপুট ফাইল যেটি আপনি পরিবর্তন করতে চান।
উদাহরণ 4: ইন-প্লেস ফাইল পরিবর্তন করা
ধরা যাক, আপনি file.txt ফাইলের মধ্যে "cat" শব্দগুলোকে "dog"-এ সরাসরি পরিবর্তন করতে চান:
sed -i 's/cat/dog/g' file.txtএটি file.txt ফাইলে সমস্ত "cat" শব্দগুলোকে "dog"-এ প্রতিস্থাপন করবে এবং তা সরাসরি সেভ করবে।
In-place Editing with Backup (ব্যাকআপ তৈরি করা)
যদি আপনি ফাইলের ইন-প্লেস পরিবর্তন করার সময় একটি ব্যাকআপ রাখতে চান, তবে -i অপশনের পরে ব্যাকআপ ফাইলের এক্সটেনশন যোগ করতে পারেন:
sed -i.bak 's/cat/dog/g' file.txtএটি file.txt ফাইলের পরিবর্তন করার আগে একটি file.txt.bak ব্যাকআপ ফাইল তৈরি করবে।
3. ফাইলের মধ্যে প্যাটার্ন মুছে ফেলা (File Manipulation with Pattern Deletion)
Sed ব্যবহার করে আপনি ফাইলের মধ্যে নির্দিষ্ট প্যাটার্ন অনুযায়ী লাইন মুছে ফেলতে পারেন। এর জন্য d (delete) কমান্ড ব্যবহার হয়।
উদাহরণ 5: নির্দিষ্ট প্যাটার্নের সাথে লাইন মুছে ফেলা
ধরা যাক, আপনি file.txt ফাইল থেকে "cat" শব্দযুক্ত সমস্ত লাইন মুছে ফেলতে চান:
sed -i '/cat/d' file.txtএটি file.txt ফাইলে "cat" শব্দযুক্ত সমস্ত লাইন মুছে ফেলবে এবং তা সরাসরি সেভ করবে।
4. ফাইলের মধ্যে নতুন লাইন যোগ করা (File Manipulation with Appending)
Sed ব্যবহার করে আপনি একটি ফাইলে নতুন লাইনও যোগ করতে পারেন, বিশেষত যখন আপনি কোনও নির্দিষ্ট লাইনের পরে নতুন কিছু যোগ করতে চান।
উদাহরণ 6: একটি নির্দিষ্ট লাইনের পরে নতুন লাইন যোগ করা
ধরা যাক, আপনি file.txt ফাইলের দ্বিতীয় লাইনের পরে একটি নতুন লাইন যোগ করতে চান:
sed -i '2a This is a new line' file.txtএটি file.txt এর দ্বিতীয় লাইনের পরে "This is a new line" যোগ করবে এবং তা সরাসরি সেভ করবে।
Conclusion
- Output Redirect: আপনি Sed এর মাধ্যমে আউটপুট রিডিরেক্ট করতে পারেন
>(overwrite) বা>>(append) ব্যবহার করে, যা টেক্সট প্রক্রিয়া এবং আউটপুট সেভ করার জন্য সহায়ক। - In-place Editing: Sed এর
-iঅপশন ব্যবহার করে আপনি সরাসরি ফাইলের মধ্যে পরিবর্তন করতে পারেন, যা ফাইলের ডেটা পরিবর্তন করার জন্য অত্যন্ত কার্যকর। - File Manipulation: Sed ব্যবহার করে আপনি ফাইলের মধ্যে প্যাটার্ন অনুসারে লাইন মুছে ফেলতে পারেন, নতুন লাইন যোগ করতে পারেন, এবং বিভিন্ন ধরনের টেক্সট পরিবর্তন করতে পারেন।
এটি ফাইল ম্যানিপুলেশন এবং আউটপুট রিডিরেকশন সম্পর্কিত কিছু মৌলিক ধারণা যা আপনাকে দ্রুত এবং কার্যকরভাবে টেক্সট পরিবর্তন করতে সহায়তা করবে।
Read more