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