Regular Expression ব্যবহার করে লাইন মুছে ফেলা

Line Deletion এবং Filtering (লাইন ডিলিশন এবং ফিল্টারিং) - সেড (Sed) - Computer Programming

349

Sed (Stream Editor) ব্যবহার করে Regular Expression (রেগুলার এক্সপ্রেশন) দিয়ে নির্দিষ্ট লাইন মুছে ফেলা সম্ভব। আপনি যদি কোনো প্যাটার্ন বা শর্ত অনুসারে লাইনের কিছু অংশ বা পুরো লাইন মুছে ফেলতে চান, তাহলে আপনি d কমান্ডের সাথে রেগুলার এক্সপ্রেশন ব্যবহার করতে পারেন। এটি টেক্সট ফাইল থেকে নির্দিষ্ট প্যাটার্নের সাথে মিলে এমন লাইনগুলো মুছে ফেলতে সাহায্য করে।


Sed এ Regular Expression ব্যবহার করে লাইন মুছে ফেলা

সিনট্যাক্স:

sed '/pattern/d' file.txt

এখানে:

  • /pattern/: এটি সেই প্যাটার্ন বা রেগুলার এক্সপ্রেশন যা আপনি খুঁজতে চান।
  • d: এটি delete (মুছে ফেলা) নির্দেশক, যা মিল পাওয়া লাইনগুলো মুছে ফেলবে।
  • file.txt: এটি সেই ফাইল যেখানে আপনি লাইন মুছে ফেলতে চান।

উদাহরণ 1: নির্দিষ্ট প্যাটার্নের ভিত্তিতে লাইন মুছে ফেলা

ধরা যাক, আপনি file.txt ফাইল থেকে "cat" শব্দটি থাকা সমস্ত লাইন মুছে ফেলতে চান:

sed '/cat/d' file.txt

এটি file.txt থেকে সব "cat" শব্দযুক্ত লাইনগুলো মুছে ফেলবে। উদাহরণস্বরূপ, যদি ফাইলে এমন লাইন থাকে:

dog
cat
bird
cat
fish

তাহলে আউটপুট হবে:

dog
bird
fish

উদাহরণ 2: নির্দিষ্ট প্যাটার্নের মধ্যে কিছু অংশের ভিত্তিতে লাইন মুছে ফেলা

ধরা যাক, আপনি "dog" অথবা "cat" শব্দযুক্ত সব লাইন মুছে ফেলতে চান:

sed '/dog\|cat/d' file.txt

এটি OR (|) অপারেটর ব্যবহার করে "dog" বা "cat" শব্দযুক্ত সব লাইন মুছে ফেলবে। উদাহরণস্বরূপ, যদি ফাইলে এমন লাইন থাকে:

cat
dog
bird
cat
fish

তাহলে আউটপুট হবে:

bird
fish

উদাহরণ 3: একটি নির্দিষ্ট লাইন নাম্বার দিয়ে লাইন মুছে ফেলা

ধরা যাক, আপনি দ্বিতীয় লাইন মুছে ফেলতে চান:

sed '2d' file.txt

এটি file.txt থেকে দ্বিতীয় লাইন মুছে ফেলবে। যদি file.txt এর মধ্যে থাকে:

Line 1
Line 2
Line 3

তাহলে আউটপুট হবে:

Line 1
Line 3

উদাহরণ 4: লাইন মুছে ফেলা যেগুলো খালি

আপনি যদি সব খালি (empty) লাইন মুছে ফেলতে চান, তবে রেগুলার এক্সপ্রেশন ব্যবহার করতে পারেন:

sed '/^$/d' file.txt

এটি সব খালি লাইনগুলো মুছে ফেলবে। উদাহরণস্বরূপ, যদি file.txt এ এমন লাইন থাকে:

Line 1

Line 2

Line 3

তাহলে আউটপুট হবে:

Line 1
Line 2
Line 3

উদাহরণ 5: লাইনে কোনো নির্দিষ্ট শব্দের সাথে মিল থাকলে সেই লাইন মুছে ফেলা

ধরা যাক, আপনি "error" শব্দ রয়েছে এমন সমস্ত লাইন মুছে ফেলতে চান:

sed '/error/d' file.txt

এটি file.txt থেকে "error" শব্দযুক্ত সমস্ত লাইন মুছে ফেলবে।

In-place Editing (ফাইলের মধ্যে সরাসরি পরিবর্তন)

আপনি যদি সরাসরি ফাইলের মধ্যে লাইন মুছে ফেলতে চান, তাহলে -i অপশন ব্যবহার করতে পারেন:

sed -i '/cat/d' file.txt

এটি file.txt ফাইল থেকে "cat" শব্দযুক্ত সমস্ত লাইন সরাসরি মুছে ফেলবে এবং তা সেভ করবে।

Conclusion

  • /pattern/d কমান্ডের মাধ্যমে আপনি Regular Expression ব্যবহার করে নির্দিষ্ট প্যাটার্নের সাথে মিল পাওয়া লাইনগুলো মুছে ফেলতে পারেন।
  • Sed এ OR (|) অপারেটর, Anchors (^, $), এবং Other Regex Special Characters (যেমন . এবং *) ব্যবহার করে আরো জটিল প্যাটার্ন মুছে ফেলতে পারবেন।
  • -i অপশন ব্যবহার করে আপনি সরাসরি ফাইলের মধ্যে পরিবর্তন করতে পারেন।
Content added By
Promotion

Are you sure to start over?

Loading...