Sed (Stream Editor) এর মাধ্যমে আপনি সহজেই ফাইলের লাইন ডিলিট করতে পারেন বা নির্দিষ্ট প্যাটার্নের ভিত্তিতে লাইন ফিল্টার করতে পারেন। এই কমান্ডগুলি বিশেষভাবে তখন কাজে আসে যখন আপনি কোনো ফাইলের নির্দিষ্ট অংশ মুছে ফেলতে চান বা বিশেষ ধরনের ডেটা বের করতে চান।
1. Line Deletion (লাইন ডিলিশন)
Sed ব্যবহার করে আপনি একাধিক উপায়ে লাইন মুছে ফেলতে পারেন। আপনি নির্দিষ্ট লাইন, লাইন রেঞ্জ, বা এমনকি প্যাটার্নের ভিত্তিতে লাইন মুছতে পারেন।
Line Deletion Syntax (লাইন ডিলিশন সিনট্যাক্স)
সিনট্যাক্স:
sed 'line_numberd' file.txtএখানে:
- line_number: যে লাইনটি মুছে ফেলতে চান।
- d: ডিলিট (মুছে ফেলা) কমান্ড।
- file.txt: যে ফাইল থেকে লাইনটি মুছে ফেলতে চান।
উদাহরণসমূহ
একটি নির্দিষ্ট লাইন মুছে ফেলা (Delete a specific line):
যদি আপনিfile.txtফাইলের তৃতীয় লাইনটি মুছে ফেলতে চান, তাহলে:কমান্ড:
sed '3d' file.txtব্যাখ্যা: এটি
file.txtফাইলের তৃতীয় লাইনটি মুছে ফেলবে।লাইন রেঞ্জে মুছে ফেলা (Delete a range of lines):
যদি আপনিfile.txtফাইলের দ্বিতীয় থেকে চতুর্থ লাইন মুছে ফেলতে চান, তাহলে:কমান্ড:
sed '2,4d' file.txtব্যাখ্যা: এটি
file.txtফাইলের দ্বিতীয় থেকে চতুর্থ লাইন মুছে ফেলবে।ফাইলের প্রথম বা শেষ লাইন মুছে ফেলা (Delete first or last line):
আপনি প্রথম বা শেষ লাইনও মুছে ফেলতে পারেন।কমান্ড:
sed '1d' file.txtব্যাখ্যা: এটি
file.txtফাইলের প্রথম লাইন মুছে ফেলবে।কমান্ড:
sed '$d' file.txtব্যাখ্যা: এটি
file.txtফাইলের শেষ লাইন মুছে ফেলবে।
2. Filtering (ফিল্টারিং)
Sed এর মাধ্যমে আপনি filtering করতে পারেন, অর্থাৎ আপনি একটি প্যাটার্নের উপর ভিত্তি করে কিছু নির্দিষ্ট লাইন বা টেক্সট বের করতে পারেন। Sed ফিল্টারিং প্রক্রিয়ার মাধ্যমে আপনি প্রয়োজনীয় তথ্য সংগ্রহ করতে পারেন, যেমন কিছু নির্দিষ্ট শব্দ বা প্যাটার্নযুক্ত লাইনগুলো।
Filtering Syntax (ফিল্টারিং সিনট্যাক্স)
সিনট্যাক্স:
sed -n '/pattern/p' file.txtএখানে:
- -n: Sed কে আউটপুট বন্ধ করতে বলে। এটি শুধুমাত্র সেই লাইনগুলো প্রদর্শন করবে যেগুলো প্যাটার্ন মেলাতে সক্ষম।
- /pattern/: যে প্যাটার্নের জন্য ফিল্টার করতে চান।
- p: প্যাটার্ন মিলে যাওয়া লাইনগুলো প্রিন্ট করবে।
উদাহরণসমূহ
একটি নির্দিষ্ট প্যাটার্ন খুঁজে বের করা (Find a specific pattern):
যদি আপনিfile.txtফাইল থেকে "error" শব্দ যুক্ত লাইনগুলো খুঁজে বের করতে চান:কমান্ড:
sed -n '/error/p' file.txtব্যাখ্যা: এটি
file.txtফাইল থেকে "error" শব্দযুক্ত সমস্ত লাইন প্রদর্শন করবে।একটি প্যাটার্ন ছাড়াই ফিল্টারিং (Filter lines without a pattern):
যদি আপনি এমন সমস্ত লাইন মুছে ফেলতে চান যা "error" শব্দের সঙ্গে মেলে না, তবে!ব্যবহার করতে পারেন:কমান্ড:
sed '/error/!d' file.txtব্যাখ্যা: এটি
file.txtফাইলের সমস্ত লাইন মুছে ফেলবে যেগুলোর মধ্যে "error" শব্দটি নেই।নির্দিষ্ট প্যাটার্নের সাথে মিলিত লাইনগুলো মুছে ফেলা (Delete lines matching a specific pattern):
যদি আপনি "dog" শব্দটি থাকা সব লাইন মুছে ফেলতে চান:কমান্ড:
sed '/dog/d' file.txtব্যাখ্যা: এটি
file.txtফাইল থেকে "dog" শব্দযুক্ত সমস্ত লাইন মুছে ফেলবে।
3. আউটপুট ফাইল পরিবর্তন করা (In-place Editing)
Sed এর মাধ্যমে আপনি in-place editing করতে পারেন, যার মানে হচ্ছে আপনি ফাইলটির মধ্যে সরাসরি পরিবর্তন করতে পারেন এবং নতুন ফাইল তৈরি না হয়। এটি -i অপশন দিয়ে করা হয়।
In-place Editing Syntax (ইন-প্লেস এডিটিং সিনট্যাক্স)
সিনট্যাক্স:
sed -i 'command' file.txtউদাহরণ:
sed -i '/error/d' file.txtব্যাখ্যা: এটি file.txt ফাইল থেকে "error" শব্দযুক্ত সমস্ত লাইন সরাসরি মুছে ফেলবে এবং নতুন ফাইল তৈরি করবে না।
সারাংশ
Line Deletion এবং Filtering হল Sed এর দুটি শক্তিশালী বৈশিষ্ট্য, যা আপনাকে টেক্সট ফাইলে নির্দিষ্ট লাইন মুছে ফেলতে এবং নির্দিষ্ট প্যাটার্ন অনুসারে লাইন ফিল্টার করতে সহায়তা করে। Line Deletion ব্যবহার করে আপনি নির্দিষ্ট লাইন বা লাইন রেঞ্জ মুছে ফেলতে পারেন, এবং Filtering ব্যবহার করে আপনি টেক্সট ফাইল থেকে নির্দিষ্ট প্যাটার্নের উপর ভিত্তি করে প্রয়োজনীয় তথ্য বের করতে পারেন। এগুলোর মাধ্যমে আপনি ফাইল প্রক্রিয়াকরণ এবং টেক্সট ম্যানিপুলেশন কাজগুলো দ্রুত এবং কার্যকরভাবে করতে পারেন।
Sed (Stream Editor) এর মাধ্যমে নির্দিষ্ট লাইনের টেক্সট মুছে ফেলা যায়। d (delete) কমান্ড ব্যবহার করে আপনি ফাইলের কোনো নির্দিষ্ট লাইন মুছে ফেলতে পারেন। এটি খুবই কার্যকরী টুল যখন আপনাকে কোনো নির্দিষ্ট লাইন বা প্যাটার্ন মুছে ফেলতে হয়।
d (delete) কমান্ডের সিনট্যাক্স
sed 'line_number d' input-fileএখানে:
- line_number: যে লাইনটি আপনি মুছে ফেলতে চান, সেটি নম্বর উল্লেখ করা হয়।
- d: এটি delete কমান্ড, যা সেই লাইনে পরিবর্তন বা মুছতে ব্যবহৃত হয়।
- input-file: যে ফাইলের মধ্যে আপনি পরিবর্তন করতে চান।
নির্দিষ্ট লাইন মুছে ফেলা উদাহরণ
1. একটি নির্দিষ্ট লাইন মুছে ফেলা
ধরা যাক, আপনি ফাইলের তৃতীয় লাইনটি মুছে ফেলতে চান। আপনি এটি নিচের কমান্ড দিয়ে করতে পারেন:
sed '3d' file.txtএটি file.txt ফাইলের তৃতীয় লাইনটি মুছে ফেলবে। কিন্তু এটি পরিবর্তন সরাসরি সেভ করবে না, বরং আউটপুটে দেখাবে।
2. নির্দিষ্ট লাইন রেঞ্জে মুছে ফেলা
আপনি যদি একটি লাইন রেঞ্জ মুছে ফেলতে চান (যেমন, দ্বিতীয় থেকে চতুর্থ লাইন), তাহলে রেঞ্জ নির্দিষ্ট করে কমান্ড দিতে হবে।
sed '2,4d' file.txtএটি file.txt ফাইলের দ্বিতীয় থেকে চতুর্থ লাইন পর্যন্ত মুছে ফেলবে।
3. প্যাটার্ন মেলানো লাইন মুছে ফেলা
Sed এর মাধ্যমে আপনি নির্দিষ্ট প্যাটার্ন মেলানো লাইনও মুছে ফেলতে পারেন। /pattern/ ব্যবহার করে আপনি যেসব লাইন নির্দিষ্ট প্যাটার্নের সাথে মেলে, সেগুলি মুছে ফেলতে পারেন।
sed '/cat/d' file.txtএটি file.txt ফাইলের সব লাইন মুছে ফেলবে যেগুলিতে "cat" শব্দটি থাকবে।
4. ইনপ্লেস পরিবর্তন (In-place modification)
যদি আপনি ফাইলের মধ্যে সরাসরি পরিবর্তন করতে চান, তবে -i অপশন ব্যবহার করতে হবে। এটি ফাইলের মধ্যে পরিবর্তন করবে এবং নতুন ফাইল তৈরি হবে না।
sed -i '3d' file.txtএটি file.txt ফাইলে তৃতীয় লাইনটি সরাসরি মুছে ফেলবে এবং পরিবর্তনটি ফাইলে সেভ করবে।
5. প্রথম এবং শেষ লাইন মুছে ফেলা
Sed দিয়ে আপনি প্রথম বা শেষ লাইনও মুছে ফেলতে পারেন।
প্রথম লাইন মুছে ফেলা:
sed '1d' file.txtশেষ লাইন মুছে ফেলা:
sed '$d' file.txt
এটি file.txt ফাইলের প্রথম বা শেষ লাইনটি মুছে ফেলবে।
সারাংশ
Sed এর d (delete) কমান্ড ব্যবহার করে আপনি একটি নির্দিষ্ট লাইন বা লাইন রেঞ্জ মুছে ফেলতে পারেন। আপনি নির্দিষ্ট প্যাটার্ন মেলানো লাইনও মুছে ফেলতে পারেন। -i অপশন ব্যবহার করে ইনপ্লেস পরিবর্তন করা যায়, যাতে পরিবর্তন সরাসরি ফাইলে সেভ হয়ে যায়।
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অপশন ব্যবহার করে আপনি সরাসরি ফাইলের মধ্যে পরিবর্তন করতে পারেন।
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 টুলটি অত্যন্ত কার্যকরী যখন আপনাকে কোনো টেক্সট ফাইলের মধ্যে অপ্রয়োজনীয় কন্টেন্ট দ্রুত মুছে ফেলতে হয়।
Sed (Stream Editor) ব্যবহার করে ফাইলের lines মুছে ফেলা (delete) এবং lines রাখা (keep) খুব সহজে করা যায়। এটি সাধারণত ফাইলের নির্দিষ্ট লাইনগুলো মুছে ফেলার জন্য ব্যবহৃত হয়, অথবা কোন লাইন বা প্যাটার্নের সাথে মিলে এমন লাইনগুলো রেখে দেওয়া হয়।
নিচে Delete এবং Keep Lines সম্পর্কিত Sed কমান্ডের উদাহরণ দেওয়া হল।
1. Delete Lines (d কমান্ড)
Delete কমান্ড (d) ব্যবহার করে আপনি একটি নির্দিষ্ট লাইন বা প্যাটার্নের সাথে মিলে এমন লাইনগুলো মুছে ফেলতে পারেন।
সিনট্যাক্স:
sed 'linenumberd' file.txtএখানে:
linenumber: যে লাইনটি আপনি মুছে ফেলতে চান।d: এটি delete অপারেশন নির্দেশ করে।file.txt: ফাইল যেখানে পরিবর্তন করতে চান।
উদাহরণ 1: নির্দিষ্ট লাইন মুছে ফেলা
ধরা যাক, আপনার একটি ফাইল আছে যেটির কনটেন্ট নিচরূপ:
ফাইল কনটেন্ট (file.txt):
apple
banana
cherry
dateআপনি যদি দ্বিতীয় লাইনটি মুছে ফেলতে চান, তাহলে:
sed '2d' file.txtআউটপুট:
apple
cherry
dateএখানে, দ্বিতীয় লাইন "banana" মুছে ফেলা হয়েছে।
উদাহরণ 2: প্যাটার্ন ম্যাচিং লাইন মুছে ফেলা
আপনি যদি "banana" শব্দটি যেসব লাইন থেকে খুঁজে পেয়ে সেগুলোর লাইন মুছে ফেলতে চান, তাহলে:
sed '/banana/d' file.txtআউটপুট:
apple
cherry
dateএটি সেই সব লাইন মুছে ফেলবে যেখানে "banana" প্যাটার্ন মেলে।
উদাহরণ 3: একাধিক লাইন মুছে ফেলা
যদি আপনি একটি রেঞ্জের মধ্যে লাইন মুছে ফেলতে চান, যেমন প্রথম থেকে তৃতীয় লাইন পর্যন্ত:
sed '1,3d' file.txtআউটপুট:
dateএখানে, প্রথম থেকে তৃতীয় লাইন পর্যন্ত ("apple", "banana", "cherry") মুছে ফেলা হয়েছে।
2. Keep Lines (! কমান্ড)
Keep Lines কমান্ডটি সাধারণত প্যাটার্ন মেলে এমন লাইনগুলো রেখে বাকিগুলো মুছে ফেলতে ব্যবহৃত হয়। এর জন্য ! (not) অপারেটর ব্যবহার করা হয়।
সিনট্যাক্স:
sed '/pattern/!d' file.txtএখানে:
/pattern/!d: এই কমান্ডটি "pattern"-এর সাথে মেলে না এমন সব লাইনকে মুছে ফেলবে।
উদাহরণ 4: প্যাটার্নের সাথে মিল না পাওয়া লাইন মুছে ফেলা
ধরা যাক, আপনার ফাইলে "banana" ছাড়া অন্য সব লাইন মুছে ফেলতে চান:
sed '/banana/!d' file.txtফাইল কনটেন্ট (file.txt):
apple
banana
cherry
dateআউটপুট:
bananaএটি শুধু "banana" রেখেছে, অন্য সব লাইন মুছে ফেলেছে।
উদাহরণ 5: নির্দিষ্ট লাইন রাখার জন্য Keep Lines
যদি আপনি তৃতীয় লাইনটি রেখে বাকি সব লাইন মুছে ফেলতে চান, তাহলে:
sed '3!d' file.txtআউটপুট:
cherryএখানে, শুধুমাত্র তৃতীয় লাইন "cherry" রাখা হয়েছে, বাকি সব লাইন মুছে ফেলা হয়েছে।
3. Multiple Line Deletion and Keeping Specific Lines
আপনি একসাথে multiple line deletion এবং keeping specific lines করতে পারেন। উদাহরণস্বরূপ, যদি আপনি প্রথম দুটি লাইন মুছে ফেলতে চান এবং তৃতীয় লাইন রাখতে চান:
sed '1,2d; 3!d' file.txtফাইল কনটেন্ট (file.txt):
apple
banana
cherry
dateআউটপুট:
cherryএখানে, প্রথম দুটি লাইন মুছে ফেলা হয়েছে এবং তৃতীয় লাইন "cherry" রাখা হয়েছে।
Conclusion
- Delete Lines (
dকমান্ড): আপনিdকমান্ড ব্যবহার করে নির্দিষ্ট লাইন বা প্যাটার্নের সাথে মিল পাওয়া লাইনগুলো মুছে ফেলতে পারেন। - Keep Lines (
!dকমান্ড): আপনি!অপারেটর ব্যবহার করে প্যাটার্নের সাথে মিল না পাওয়া লাইনগুলো মুছে ফেলতে পারেন, অর্থাৎ আপনি যেসব লাইন রাখতে চান, সেগুলো রেখে বাকি লাইনগুলো মুছে ফেলতে পারেন।
এগুলি Sed এর খুবই শক্তিশালী ফিচার যা ফাইলের মধ্যে দ্রুত এবং কার্যকরীভাবে লাইন মুছে ফেলা বা রেখেছে সাহায্য করে।
Read more