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অপশন ব্যবহার করে আপনি সরাসরি ফাইলের মধ্যে পরিবর্তন করতে পারেন।
Read more