Sed (Stream Editor) ব্যবহার করে একাধিক ফাইলের উপর অপারেশন করা খুবই সহজ এবং কার্যকরী। আপনি একাধিক ফাইলে একই পরিবর্তন বা কমান্ড প্রয়োগ করতে পারেন, এবং আপনি ফাইলগুলোর মধ্যে প্যাটার্ন খুঁজে বা পরিবর্তন করতে Sed ব্যবহার করতে পারেন।
Sed দিয়ে Multiple Files এর উপর অপারেশন করা
Sed এর মাধ্যমে একাধিক ফাইলে অপারেশন করতে কিছু পদ্ধতি রয়েছে। সেগুলোর মধ্যে আছে:
- একাধিক ফাইলের উপর একই কমান্ড প্রয়োগ করা
- একাধিক ফাইলের উপর ইনপুট এবং আউটপুট পরিচালনা করা
- বিন্যাসে বা প্যাটার্নে পরিবর্তন করা
1. একাধিক ফাইলের উপর একই কমান্ড প্রয়োগ করা
Sed দিয়ে আপনি একাধিক ফাইলে একই কমান্ড প্রয়োগ করতে পারেন। এর জন্য -e অপশন বা multiple files একসাথে প্রদান করা যায়।
সিনট্যাক্স:
sed 's/old_word/new_word/g' file1.txt file2.txt file3.txtএখানে:
s/old_word/new_word/g: এটি "old_word" কে "new_word" দিয়ে প্রতিস্থাপন করবে।file1.txt file2.txt file3.txt: এটি তিনটি ফাইলে একই কমান্ড প্রয়োগ করবে।
উদাহরণ:
আপনি যদি তিনটি ফাইলের মধ্যে "apple" শব্দকে "orange"-এ প্রতিস্থাপন করতে চান:
sed 's/apple/orange/g' file1.txt file2.txt file3.txtএটি file1.txt, file2.txt, এবং file3.txt এ "apple" শব্দকে "orange"-এ প্রতিস্থাপন করবে এবং আউটপুট দেখাবে।
2. একাধিক ফাইলের উপর ইনপুট এবং আউটপুট পরিচালনা করা
Sed দিয়ে আপনি একাধিক ফাইলের উপর অপারেশন করতে এবং সেই পরিবর্তনগুলিকে আলাদা আউটপুট ফাইলে সংরক্ষণ করতে পারেন।
সিনট্যাক্স:
sed 's/old_word/new_word/g' file1.txt file2.txt > output.txtএখানে:
file1.txt file2.txt: আপনি যেসব ফাইলে কাজ করতে চান।> output.txt: আউটপুট ফাইল হিসেবেoutput.txtনির্দিষ্ট করা হয়েছে, যেখানে পরিবর্তিত ডেটা লেখা হবে।
উদাহরণ:
আপনি যদি দুইটি ফাইলে "cat" শব্দকে "dog"-এ প্রতিস্থাপন করতে চান এবং সেই পরিবর্তিত ডেটা একটি নতুন ফাইলে সেভ করতে চান:
sed 's/cat/dog/g' file1.txt file2.txt > output.txtএটি file1.txt এবং file2.txt থেকে "cat" শব্দকে "dog"-এ প্রতিস্থাপন করবে এবং ফলস্বরূপ output.txt ফাইলে সেভ হবে।
3. একাধিক ফাইলে ইনপ্লেস (In-place) পরিবর্তন করা
যদি আপনি একাধিক ফাইলে সরাসরি পরিবর্তন করতে চান, তবে -i (in-place) অপশন ব্যবহার করতে পারেন। এটি ফাইলের মধ্যে পরিবর্তন করবে এবং নতুন ফাইল তৈরি হবে না।
সিনট্যাক্স:
sed -i 's/old_word/new_word/g' file1.txt file2.txtএখানে:
-i: এটি ইনপ্লেস (in-place) পরিবর্তন করবে।file1.txt file2.txt: একাধিক ফাইলের উপর একই পরিবর্তন প্রয়োগ করবে।
উদাহরণ:
আপনি যদি দুইটি ফাইলে সরাসরি "apple" শব্দকে "orange"-এ প্রতিস্থাপন করতে চান:
sed -i 's/apple/orange/g' file1.txt file2.txtএটি file1.txt এবং file2.txt ফাইলে সরাসরি "apple" শব্দকে "orange"-এ প্রতিস্থাপন করবে।
4. একাধিক ফাইলের উপর প্যাটার্ন মেলানো
Sed দিয়ে আপনি একাধিক ফাইলে নির্দিষ্ট প্যাটার্ন মেলানো লাইনগুলো প্রদর্শন করতে পারেন। উদাহরণস্বরূপ, যদি আপনি একটি নির্দিষ্ট প্যাটার্ন বা শব্দ খুঁজে বের করতে চান, তবে সেই প্যাটার্নের সাথে মেলা সমস্ত লাইন প্রদর্শন করতে পারেন।
সিনট্যাক্স:
sed -n '/pattern/p' file1.txt file2.txtএখানে:
/pattern/p: এটি "pattern" প্যাটার্নের সাথে মেলানো লাইনগুলো প্রদর্শন করবে।file1.txt file2.txt: একাধিক ফাইলের মধ্যে প্যাটার্ন খুঁজে বের করবে।
উদাহরণ:
ধরা যাক, আপনি file1.txt এবং file2.txt ফাইল থেকে "dog" শব্দের সাথে মেলা লাইনগুলো দেখতে চান:
sed -n '/dog/p' file1.txt file2.txtএটি file1.txt এবং file2.txt ফাইল থেকে "dog" শব্দের সাথে মেলা সব লাইনগুলো আউটপুটে প্রদর্শন করবে।
5. বাচক ফাইলের উপর পরিবর্তন এবং আউটপুট রাখা
আপনি একটি স্ক্রিপ্ট ব্যবহার করে একাধিক ফাইলে পরিবর্তন করতে পারেন। এভাবে, আপনি একাধিক ফাইলে একটি নির্দিষ্ট প্যাটার্নের উপর পরিবর্তন করে সেই পরিবর্তিত ডেটা একটি আউটপুট ফাইলে রাখতে পারেন।
সিনট্যাক্স:
sed -f script.sed file1.txt file2.txt > output.txtএখানে:
-f script.sed: এটি একটি Sed স্ক্রিপ্ট ফাইল যেটি কমান্ডগুলো সংরক্ষণ করে।file1.txt file2.txt: একাধিক ফাইলের উপর অপারেশন।> output.txt: আউটপুট ফাইল হিসেবে **output.txt**।
উদাহরণ:
যদি আপনি script.sed স্ক্রিপ্ট ব্যবহার করেন এবং file1.txt এবং file2.txt ফাইলে একই পরিবর্তন করতে চান:
sed -f script.sed file1.txt file2.txt > output.txtএটি file1.txt এবং file2.txt ফাইল থেকে কমান্ডের আউটপুট হিসেবে output.txt তৈরি করবে।
Conclusion
- Sed দিয়ে আপনি একাধিক ফাইলে একই কমান্ড প্রয়োগ করতে পারেন।
-iঅপশন দিয়ে ইনপ্লেস পরিবর্তন করা যায়, এবং-eবা-fঅপশন ব্যবহার করে একাধিক ফাইলের উপর বিভিন্ন কমান্ড প্রয়োগ করা যায়।- আপনি একাধিক ফাইলে প্যাটার্ন খুঁজে, রিপ্লেসমেন্ট, ডিলিট বা অন্য কোনো পরিবর্তন করতে পারেন এবং ফলস্বরূপ আউটপুট তৈরি করতে পারেন।
এটি স্ক্রিপ্টিং এবং ফাইল ম্যানিপুলেশন প্রক্রিয়াকে আরো কার্যকরী এবং দ্রুততর করে তোলে।
Read more