Sed (Stream Editor) ব্যবহার করে filtering techniques এর মাধ্যমে আপনি specific content বা নির্দিষ্ট টেক্সট বা প্যাটার্ন মুছে ফেলতে পারেন। Sed আপনাকে বিভিন্ন ধরনের প্যাটার্ন খুঁজে এবং সেগুলোর সাথে মেলানো লাইন বা কন্টেন্ট মুছে ফেলার জন্য শক্তিশালী কমান্ড সরবরাহ করে।
Filtering Techniques এর মাধ্যমে Specific Content মুছে ফেলা
Sed-এ Filtering Techniques ব্যবহার করে কনটেন্ট মুছে ফেলতে d (delete) কমান্ড ব্যবহৃত হয়। আপনি -n অপশন ব্যবহার করলে Sed আউটপুটে শুধু সেই লাইনগুলো দেখাবে যেগুলো আপনি রাখতে চান এবং d কমান্ড দিয়ে অন্যান্য লাইন মুছে ফেলতে পারেন।
Sed Syntax for Deleting Content:
sed 'pattern d' file.txtএখানে:
pattern: যেই প্যাটার্নের সাথে মিল পাওয়া লাইনগুলো মুছে ফেলতে চান।d: এটি delete অপারেশন নির্দেশ করে, অর্থাৎ যেসব লাইন প্যাটার্নের সাথে মিলে যাবে, সেগুলো মুছে ফেলা হবে।file.txt: যে ফাইলটি থেকে কন্টেন্ট মুছে ফেলবেন।
Common Filtering Techniques for Deleting Specific Content
নির্দিষ্ট প্যাটার্নের সাথে মিল পাওয়া লাইন মুছে ফেলা
আপনি যদি একটি নির্দিষ্ট শব্দ বা প্যাটার্নের সাথে মিল পাওয়া লাইনগুলো মুছে ফেলতে চান, তবে এই কমান্ডটি ব্যবহার করতে পারেন:sed '/pattern/d' file.txtউদাহরণ: যদি আপনি "cat" শব্দযুক্ত লাইনগুলো মুছে ফেলতে চান:
sed '/cat/d' file.txtএটি
file.txtফাইল থেকে "cat" শব্দযুক্ত সমস্ত লাইন মুছে ফেলবে।নির্দিষ্ট লাইন মুছে ফেলা
আপনি যদি একটি নির্দিষ্ট লাইনের সংখ্যা মুছে ফেলতে চান, তাহলে লাইন নম্বর উল্লেখ করতে পারেন। উদাহরণস্বরূপ, দ্বিতীয় লাইনটি মুছে ফেলতে:sed '2d' file.txtএই কমান্ডটি
file.txtএর দ্বিতীয় লাইনটি মুছে ফেলবে।নির্দিষ্ট রেঞ্জের মধ্যে লাইন মুছে ফেলা
যদি আপনি কয়েকটি নির্দিষ্ট লাইন মুছে ফেলতে চান, যেমন দ্বিতীয় থেকে চতুর্থ লাইন পর্যন্ত, তাহলে আপনি এইভাবে করতে পারেন:sed '2,4d' file.txtএটি
file.txtফাইল থেকে দ্বিতীয়, তৃতীয়, এবং চতুর্থ লাইন মুছে ফেলবে।লাইনের মধ্যে একটি প্যাটার্ন থাকলেই পুরো লাইন মুছে ফেলা
যদি আপনি এমন লাইন মুছে ফেলতে চান যেগুলোর মধ্যে নির্দিষ্ট কোনো প্যাটার্ন বা শব্দ রয়েছে, তবে সেই প্যাটার্নটি/pattern/দিয়ে উল্লেখ করতে পারেন। উদাহরণস্বরূপ, যদি আপনি এমন সমস্ত লাইন মুছে ফেলতে চান যেগুলোতে "error" শব্দটি রয়েছে:sed '/error/d' file.txtএটি
file.txtথেকে সব "error" শব্দযুক্ত লাইনগুলো মুছে ফেলবে।ব্ল্যাংক (খালি) লাইন মুছে ফেলা
আপনি যদি ফাইল থেকে সমস্ত খালি লাইন (blank lines) মুছে ফেলতে চান, তাহলে এটি করতে পারেন:sed '/^$/d' file.txtএখানে:
^$প্যাটার্নটি খালি লাইন খুঁজে।dকমান্ডের মাধ্যমে সেগুলি মুছে ফেলা হয়।
লাইনে "প্রথম" কিছু শব্দ থাকার পর বাকী অংশ মুছে ফেলা
যদি আপনি কোনো লাইন থেকে একটি নির্দিষ্ট শব্দের পরে সমস্ত বাকী অংশ মুছে ফেলতে চান, তাহলেs/pattern//কমান্ড ব্যবহার করতে পারেন। উদাহরণস্বরূপ, "cat" শব্দটির পরে বাকী অংশ মুছে ফেলতে:sed 's/cat.*//g' file.txtএটি "cat" এর পরে যেকোনো শব্দ বা টেক্সট মুছে ফেলবে।
ইন-প্লেস পরিবর্তন
যদি আপনি ফাইলের মধ্যে সরাসরি পরিবর্তন করতে চান এবং নতুন ফাইল তৈরি না করতে চান, তাহলে-iঅপশন ব্যবহার করুন:sed -i '/pattern/d' file.txtএটি
file.txtফাইলে সরাসরি প্যাটার্ন মিলে এমন লাইনগুলো মুছে ফেলবে এবং পরিবর্তনগুলো সেভ করবে।
Multiple Patterns এর Filtering
আপনি একাধিক প্যাটার্নের জন্যও filtering করতে পারেন। যেমন, আপনি যদি "cat" এবং "dog" শব্দের সাথে মিল পাওয়া লাইনগুলো মুছে ফেলতে চান, তাহলে:
sed '/cat/d; /dog/d' file.txtএটি file.txt থেকে "cat" এবং "dog" শব্দযুক্ত লাইনগুলো মুছে ফেলবে।
Conclusion
Sed এর মাধ্যমে আপনি খুব সহজে filtering techniques ব্যবহার করে specific content বা নির্দিষ্ট টেক্সট মুছে ফেলতে পারেন। আপনি প্যাটার্ন, লাইন নম্বর, বা রেঞ্জের ভিত্তিতে টেক্সট মুছে ফেলার জন্য বিভিন্ন কমান্ড ব্যবহার করতে পারেন। Sed টুলটি অত্যন্ত কার্যকরী যখন আপনাকে কোনো টেক্সট ফাইলের মধ্যে অপ্রয়োজনীয় কন্টেন্ট দ্রুত মুছে ফেলতে হয়।
Read more