p (print) কমান্ড Sed এর একটি গুরুত্বপূর্ণ কমান্ড যা নির্দিষ্ট প্যাটার্ন বা লাইন প্রদর্শন করতে ব্যবহৃত হয়। Sed সাধারণত টেক্সট ফাইলের মধ্যে পরিবর্তন করে বা ম্যানিপুলেট করে, তবে আপনি যদি শুধু কিছু নির্দিষ্ট লাইন বা প্যাটার্ন প্রদর্শন করতে চান, তাহলে p কমান্ড ব্যবহার করা হয়।
Sed এর p কমান্ড মূলত একটি "printing" অপারেশন হিসেবে কাজ করে, যেখানে আপনি যেসব লাইন বা প্যাটার্ন দেখতে চান, সেগুলো কেবলমাত্র আউটপুট হিসেবে প্রদর্শিত হয়।
p কমান্ডের মৌলিক ব্যবহার
Sed এর p কমান্ডের মূল উদ্দেশ্য হলো টেক্সট ফাইলের মধ্যে কোনো নির্দিষ্ট প্যাটার্ন বা লাইনের সাথে মিলে এমন লাইনগুলো প্রদর্শন করা। সাধারণত -n অপশন ব্যবহার করে Sed এ আউটপুট কেবল তখনই দেখা যায়, যখন প্যাটার্ন মিলে।
সিনট্যাক্স:
sed -n '/pattern/p' file.txtএখানে:
-n: এটি Sed কে নির্দেশ করে যে, শুধু সেই লাইনগুলো প্রিন্ট করবে যেগুলোর সাথে কোনো প্যাটার্ন মিলে। সাধারাণত Sed ফাইল পরিবর্তন করে, কিন্তু-nঅপশন দিয়ে আপনি আউটপুট নিয়ন্ত্রণ করতে পারেন।/pattern/: এটি একটি প্যাটার্ন, যা আপনি খুঁজে বের করতে চান। এটি রেগুলার এক্সপ্রেশনও হতে পারে।p: এটি সেই লাইনগুলো প্রিন্ট করতে বলে, যেগুলো প্যাটার্নের সাথে মেলে।
p কমান্ডের উদাহরণ:
প্যাটার্ন দিয়ে নির্দিষ্ট লাইন প্রিন্ট করা
আপনি যদি একটি ফাইলে "cat" শব্দের সাথে মিলে এমন সমস্ত লাইন প্রিন্ট করতে চান, তাহলে এই কমান্ডটি ব্যবহার করবেন:sed -n '/cat/p' file.txtএখানে:
-nঅপশন ব্যবহার করে, Sed আউটপুট হিসেবে শুধুমাত্র "cat" শব্দযুক্ত লাইনগুলো প্রদর্শন করবে।/cat/প্যাটার্নটি সেই সব লাইনগুলো খুঁজে বের করবে যেখানে "cat" শব্দ রয়েছে।pনির্দেশ করবে যে, ঐ সব লাইনের আউটপুট দেখানো হবে।
বিশেষ শব্দ বা প্যাটার্ন খুঁজে তার সাথে মেলে এমন লাইন প্রিন্ট করা
আপনি যদি "dog" শব্দের সাথে মিলে এমন লাইনগুলোকেই দেখাতে চান, তাহলে:sed -n '/dog/p' file.txtএই কমান্ডটি
file.txtফাইলে "dog" শব্দের সাথে মেলে এমন সমস্ত লাইন প্রিন্ট করবে।নির্দিষ্ট লাইন প্রিন্ট করা
আপনি যদি নির্দিষ্ট লাইন প্রিন্ট করতে চান, যেমন প্রথম তিনটি লাইন:sed -n '1,3p' file.txtএই কমান্ডটি প্রথম থেকে তৃতীয় লাইন পর্যন্ত
file.txtথেকে প্রিন্ট করবে।নির্দিষ্ট শব্দের সাথে শুরু হওয়া লাইন প্রিন্ট করা
আপনি যদি শুধু সেই লাইনগুলো দেখতে চান যা "Hello" দিয়ে শুরু হয়, তাহলে:sed -n '/^Hello/p' file.txtএখানে
^Helloদ্বারা বোঝানো হচ্ছে যে, লাইনটি "Hello"-এ শুরু হয়।
Multiple Patterns with p কমান্ড
একাধিক প্যাটার্নের জন্য Sed দিয়ে একাধিক লাইন প্রিন্ট করা যায়। উদাহরণস্বরূপ, আপনি যদি "cat" এবং "dog" উভয় শব্দের সাথে মিল থাকা লাইনগুলো দেখতে চান, তাহলে:
sed -n '/cat/p; /dog/p' file.txtএটি file.txt ফাইলে "cat" এবং "dog" উভয় শব্দের সাথে মেলে এমন লাইনগুলো প্রিন্ট করবে।
p কমান্ডের অন্যান্য ব্যবহার
লিখিত আউটপুট পরিবর্তন করতে
যদি আপনি প্যাটার্ন ম্যাচ হওয়া লাইনগুলোকে কোনো নির্দিষ্ট আউটপুট ফাইলে লিখতে চান, তাহলে-iঅপশন ব্যবহার করা যেতে পারে।sed -n '/pattern/p' input.txt > output.txtপ্যাটার্নের আগে বা পরে কিছু টেক্সট যোগ করা
আপনি যদি কোনো নির্দিষ্ট প্যাটার্ন প্রিন্ট করার পাশাপাশি তার আগে বা পরে কোনো টেক্সট যোগ করতে চান, তাহলে তা করতে পারেন।উদাহরণ:
sed -n '/pattern/{s/^/Prefix: /;p}' file.txtএটি "pattern" প্যাটার্নের সাথে মিল পাওয়া লাইনগুলির আগে "Prefix: " যোগ করবে এবং সেগুলো প্রিন্ট করবে।
p কমান্ডের সীমাবদ্ধতা
- অফলাইন অপারেশন: Sed টুলটি মূলত লাইনের মধ্যে পরিবর্তন করার জন্য ব্যবহৃত হয়। তবে,
pকমান্ড শুধুমাত্র প্যাটার্নের ভিত্তিতে আউটপুট প্রদর্শন করে, কিন্তু এটি পরিবর্তন বা ম্যানিপুলেশন করে না (যেমনs/old/new/কমান্ড করে)। -nঅপশন:pকমান্ডের সাথে সাধারণত-nঅপশন ব্যবহার করতে হয়, না হলে এটি সব লাইনকে প্রিন্ট করবে, যা অপ্রত্যাশিত হতে পারে।
সারাংশ
p (print) কমান্ড Sed এর মধ্যে একটি গুরুত্বপূর্ণ উপাদান, যা নির্দিষ্ট প্যাটার্ন বা লাইনগুলো আউটপুট হিসেবে প্রদর্শন করতে ব্যবহৃত হয়। এটি ফাইলের মধ্যে কোনো প্যাটার্নের সাথে মেলে এমন লাইনগুলো দেখতে সহায়ক এবং -n অপশন ব্যবহার করে শুধুমাত্র নির্বাচিত লাইনগুলো প্রিন্ট করা হয়। p কমান্ডটি Sed-এর অন্যান্য শক্তিশালী ফিচারের সাথে মিলিয়ে ব্যবহার করলে আরও কার্যকর হতে পারে।
Read more