Sed (Stream Editor) ব্যবহার করে ইনপুট ফাইল থেকে ডেটা পড়া এবং টেক্সট ম্যানিপুলেশন করা একটি সাধারণ প্রক্রিয়া। আপনি যেকোনো টেক্সট ফাইলের মধ্যে তথ্য পরিবর্তন, ফিল্টারিং, বা বিশ্লেষণ করতে Sed ব্যবহার করতে পারেন। এখানে input files থেকে ডেটা পড়ার বিভিন্ন উপায় এবং উদাহরণ আলোচনা করা হয়েছে।
Sed দিয়ে Input Files থেকে ডেটা পড়া
Sed সাধারণত standard input (stdin) থেকে ডেটা গ্রহণ করে, কিন্তু আপনি একটি টেক্সট ফাইলকে ইনপুট হিসেবে ব্যবহার করতে পারেন। Sed কমান্ড রান করার সময় input file নির্দিষ্ট করতে পারেন।
সাধারণ সিনট্যাক্স:
sed 'command' input-fileএখানে:
command: Sed কমান্ড যা ফাইলের মধ্যে কার্যকর হবে (যেমন, সার্চ, রিপ্লেস, ডিলিট ইত্যাদি)।input-file: যে ফাইল থেকে ডেটা পড়তে চান।
Sed দিয়ে Input File থেকে ডেটা পড়ার উদাহরণ
1. Input File থেকে ডেটা পড়া এবং সরাসরি আউটপুট দেখানো
ধরা যাক, আপনি file.txt নামক একটি ফাইল থেকে ডেটা পড়তে চান এবং সেই ডেটা আউটপুটে দেখতে চান।
sed '' file.txtএটি file.txt এর সমস্ত কনটেন্টকে আউটপুটে প্রদর্শন করবে, তবে কোনো পরিবর্তন হবে না।
2. নির্দিষ্ট প্যাটার্ন অনুসারে ডেটা পড়া
যদি আপনি ফাইল থেকে শুধুমাত্র একটি নির্দিষ্ট প্যাটার্নের সাথে মেলানো লাইনগুলো দেখতে চান, তাহলে আপনি Sed এর প্যাটার্ন মেলানোর ফিচার ব্যবহার করতে পারেন।
sed -n '/pattern/p' file.txtএটি file.txt থেকে সেই সমস্ত লাইন প্রদর্শন করবে যেগুলির মধ্যে pattern রয়েছে। -n অপশন Sed কে নির্দেশ করে যে, আউটপুট শুধুমাত্র নির্দিষ্ট প্যাটার্নের সাথে মেলানো লাইনগুলোই দেখাবে।
3. ফাইলের মধ্যে একটি নির্দিষ্ট শব্দ প্রতিস্থাপন করা
ধরা যাক, আপনি file.txt ফাইলের মধ্যে "apple" শব্দটিকে "banana"-এ প্রতিস্থাপন করতে চান:
sed 's/apple/banana/g' file.txtএটি file.txt ফাইলে সব "apple" শব্দকে "banana"-এ প্রতিস্থাপন করবে এবং আউটপুটে দেখাবে (ফাইলটি পরিবর্তন না করে)।
4. লেখার প্যাটার্ন দিয়ে তথ্য পরিবর্তন করা
এখন, যদি আপনি ফাইল থেকে একটি নির্দিষ্ট লাইন মুছে ফেলতে চান, আপনি d (delete) কমান্ড ব্যবহার করতে পারেন:
sed '/pattern/d' file.txtএটি file.txt ফাইল থেকে pattern প্যাটার্নের সাথে মেলা সব লাইন মুছে ফেলবে এবং বাকি লাইনগুলো আউটপুটে দেখাবে।
5. Input File থেকে নতুন লাইন যোগ করা
ধরা যাক, আপনি একটি টেক্সট ফাইলের শেষে একটি নতুন লাইন যোগ করতে চান:
sed '$a New line added' file.txtএটি file.txt ফাইলের শেষে "New line added" যোগ করবে এবং আউটপুট দেখাবে।
6. ইনপুট ফাইলে পরিবর্তন করা (In-place Editing)
যদি আপনি ফাইলের মধ্যে সরাসরি পরিবর্তন করতে চান, তাহলে -i (in-place) অপশন ব্যবহার করতে পারেন:
sed -i 's/apple/banana/g' file.txtএটি file.txt ফাইলে "apple" শব্দকে "banana"-এ প্রতিস্থাপন করবে এবং পরিবর্তনটি ফাইলে সেভ করবে।
7. একাধিক কমান্ড দিয়ে Input File থেকে ডেটা পড়া
আপনি একাধিক Sed কমান্ড একসাথে ব্যবহার করতে পারেন। উদাহরণস্বরূপ, প্রথমে একটি শব্দ পরিবর্তন করা, তারপর একটি লাইন মুছে ফেলা:
sed -e 's/apple/banana/g' -e '/orange/d' file.txtএটি:
s/apple/banana/g: "apple" শব্দকে "banana"-এ প্রতিস্থাপন করবে।/orange/d: "orange" শব্দযুক্ত সব লাইন মুছে ফেলবে।
8. ফাইলের কয়েকটি লাইনকে ম্যানিপুলেট করা
ধরা যাক, আপনি একটি ফাইলের প্রথম তিনটি লাইন মুছে ফেলতে চান:
sed '1,3d' file.txtএটি file.txt ফাইলের প্রথম থেকে তৃতীয় লাইন মুছে ফেলবে।
Conclusion
- Sed এর মাধ্যমে ইনপুট ফাইল থেকে ডেটা পড়া এবং সেই ডেটার উপর পরিবর্তন করা খুবই সহজ। আপনি বিভিন্ন কমান্ড এবং অপশন ব্যবহার করে ফাইল থেকে নির্দিষ্ট ডেটা পড়তে, ম্যানিপুলেট করতে এবং পরিবর্তন করতে পারেন।
-nঅপশন ব্যবহার করলে শুধুমাত্র নির্দিষ্ট প্যাটার্ন মেলানো লাইনগুলো আউটপুটে দেখানো হবে।-iঅপশন ব্যবহার করে আপনি ফাইলের মধ্যে সরাসরি পরিবর্তন করতে পারেন।
Read more