কিভাবে 'sed' ব্যবহার করে ম্যাচের পর একটি লাইন োকাবেন?

How Insert Line After Match Using Sed



লিনাক্সের একটি দরকারী এবং শক্তিশালী কমান্ড হল sed কমান্ড। এই কমান্ডটি লিনাক্সে বিভিন্ন ধরনের কাজ সম্পাদন করতে ব্যবহৃত হয়, যেমন একটি নির্দিষ্ট টেক্সট বা লাইন মিলের উপর ভিত্তি করে সন্নিবেশ করা, আপডেট করা এবং মুছে ফেলা। আপনি sed কমান্ড ব্যবহার করে একটি স্ট্রিং বা একটি ফাইলে বিভিন্ন উপায়ে একটি লেখা সন্নিবেশ করতে পারেন।

একটি স্ট্রিং বা একটি রেখায় মিল খুঁজে পাওয়ার পর কীভাবে একটি লাইন সন্নিবেশ করানো যায় তা এই টিউটোরিয়ালে দেখানো হয়েছে।







স্ট্রিং এ একটি লাইন োকান

যদি কমান্ডে সংজ্ঞায়িত প্যাটার্নটি স্ট্রিং ভ্যালুর যেকোনো অংশের সাথে মিলে যায় তবে sed ​​কমান্ড ব্যবহার করে যেকোনো স্ট্রিং ভ্যালুর পরে একটি নতুন লাইন ertedোকানো যেতে পারে।



নিচের উদাহরণটি দেখায় কিভাবে স্ট্রিং মানের পরে একটি নতুন লাইন যোগ করা যায় যদি স্ট্রিং ভ্যালুর কোথাও একটি নির্দিষ্ট স্ট্রিং বিদ্যমান থাকে।



উদাহরণ -1: একটি মিল খুঁজে পাওয়ার পর একটি স্ট্রিংয়ে একটি লাইন োকান

নিচের কমান্ডটি স্ট্রিং এ inng অনুসন্ধান করবে, আমি প্রোগ্রামিং পছন্দ করি, এবং পাঠ্যের একটি লাইন, আপনি কি প্রোগ্রামিং পছন্দ করেন? অনুসন্ধানের স্ট্রিং বিদ্যমান থাকলে স্ট্রিং এর পরে োকানো হবে।





এখানে, & অক্ষর স্ট্রিং এর পরে লাইন সন্নিবেশ করতে ব্যবহৃত হয়।

$বের করে দিল 'আমি প্রোগ্রামিং পছন্দ করি।' | sed 's / inng / & আপনি প্রোগ্রামিং পছন্দ করেন? /'

নিম্নোক্ত আউটপুট দেখায় যে স্ট্রিং এ inng বিদ্যমান নেই এবং স্ট্রিং এর পর কোন লাইন োকানো হয়নি।




নিচের কমান্ডটি অনুসন্ধান করবে। স্ট্রিং এ, আমি প্রোগ্রামিং পছন্দ করি এবং এটি স্ট্রিং এ বিদ্যমান।

$বের করে দিল 'আমি প্রোগ্রামিং পছন্দ করি।' | sed 's/ing ./& আপনি কি প্রোগ্রামিং পছন্দ করেন?/'

নিম্নলিখিত আউটপুট দেখায় যে স্ট্রিং এর পরে নতুন লাইন যোগ করা হয়েছে।

একটি ফাইলে একটি লাইন সন্নিবেশ করান

নীচে উল্লিখিত একটি ফাইলে একটি ম্যাচ পাওয়া গেলে একটি লাইন সন্নিবেশ করার দুটি উপায় রয়েছে। যখন sed কমান্ডটি -i অপশন ছাড়া ব্যবহার করা হয়, তখন ফাইলের বিষয়বস্তু অপরিবর্তিত থাকবে এবং আউটপুট সন্নিবেশিত নতুন লাইনের সাথে ফাইলের বিষয়বস্তু দেখাবে। ফাইলে যদি মিলে যাওয়া প্যাটার্নটি বিদ্যমান থাকে তবে আপনাকে ফাইলে স্থায়ীভাবে নতুন লাইন toোকানোর জন্য sed কমান্ডের সাথে -i বিকল্পটি ব্যবহার করতে হবে।

উ: sed কমান্ড ব্যবহার করে

A সেডের সার্চ প্যাটার্নে ব্যবহার করা যেতে পারে একটি সারিতে একটি বা একাধিক লাইন যুক্ত করার জন্য যেখানে সার্চ প্যাটার্ন মিলে যায় বা নির্দিষ্ট লাইন নম্বরের পরে।

B. sed কমান্ডে i ব্যবহার করে

আমি সার কমান্ডের সার্চ প্যাটার্নে ব্যবহার করা যেতে পারে যেখানে সার্চের প্যাটার্ন মেলে সেই লাইনের আগে একটি ফাইলে এক বা একাধিক লাইন োকানোর জন্য।

প্যাটার্নের উপর ভিত্তি করে একটি ফাইলে লাইন (গুলি) সন্নিবেশ করান:

নামের একটি ট্যাব-সীমাবদ্ধ পাঠ্য ফাইল তৈরি করুন products.txt sed কমান্ডে উপরের পতাকার ব্যবহার দেখানোর জন্য নিম্নলিখিত বিষয়বস্তু সহ।

products.txt

আইডির নাম

01 হুইপ ক্রিম

02 কোকো পাউডার

03 চিনি

04 ডিম

05 ময়দা

উদাহরণ -২: a ব্যবহার করে একটি নির্দিষ্ট লাইন নম্বরের পর একটি লাইন সন্নিবেশ করান

Sed কমান্ডে ব্যবহৃত প্যাটার্নের উপর ভিত্তি করে products.txt ফাইলের একটি নির্দিষ্ট লাইন নম্বরের পরে কীভাবে একটি নতুন লাইন যোগ করা যায় তা নিম্নলিখিত কমান্ডগুলি দেখায়।

এখানে, প্রথম কমান্ডটি ফাইলের বিদ্যমান সামগ্রী প্রদর্শন করবে। Sed কমান্ডটি ফাইলের প্রথম দুই লাইনের পরে টেক্সট, b01 বেকিং পাউডার যুক্ত করবে। ফাইলের বিষয়বস্তু পরিবর্তিত হয়েছে কি না তা পরীক্ষা করার জন্য শেষ কমান্ডটি ব্যবহার করা হয়।

$বিড়ালproducts.txt

$sed '2 a b01 t বেকিং পাউডার'products.txt

$বিড়ালproducts.txt

উপরের কমান্ডটি চালানোর পরে নিম্নলিখিত আউটপুটটি উপস্থিত হবে।

উদাহরণ-3: a ব্যবহার করে শেষ লাইনের পর একটি লাইন োকান

নিচের কমান্ডটি ফাইলের শেষ লাইনের পরে একটি নতুন লাইন যুক্ত করার পথ দেখায়। প্রথম এবং শেষ কমান্ড sed কমান্ড চালানোর আগে এবং পরে ফাইলের বিদ্যমান বিষয়বস্তু দেখায়। $ প্রতীক ব্যবহার করা হয় sed কমান্ডের প্যাটার্নে ফাইলের শেষ লাইন উল্লেখ করার জন্য।

$বিড়ালproducts.txt

$sed '$ a b01 t বেকিং পাউডার'products.txt

$বিড়ালproducts.txt

উপরের কমান্ডটি চালানোর পরে নিম্নলিখিত আউটপুটটি উপস্থিত হবে।

উদাহরণ-4: a ব্যবহার করে একটি প্যাটার্ন মিলানোর পর ফাইলের যেকোনো স্থানে একটি লাইন োকান

নিচের sed কমান্ডটি দেখায় কিভাবে মেলে প্যাটার্নের উপর ভিত্তি করে ফাইলের কোথাও একটি নতুন লাইন যোগ করা যায়। Sed কমান্ডে ব্যবহৃত প্যাটার্নটি s01 দিয়ে শুরু হওয়া যেকোনো লাইন অনুসন্ধান করবে এবং এর পরে নতুন স্ট্রিং যুক্ত করবে। ফাইলের চতুর্থ লাইনটি s01 দিয়ে শুরু হয় এবং সেই লাইনের পরে নতুন লাইন ertedোকানো হবে।

$বিড়ালproducts.txt

$sed '/^s01.*/a b01 t বেকিং পাউডার'products.txt

$বিড়ালproducts.txt

কমান্ড চালানোর পর নিচের আউটপুট দেখা যাবে।


নিম্নলিখিত sed কমান্ডটি পাউডারের সাথে শেষ হওয়া যেকোনো লাইন অনুসন্ধান করবে এবং এর পরে নতুন লাইনটি োকাবে। ফাইলের তৃতীয় লাইনটি পাউডার দিয়ে শেষ হয়। সুতরাং, সেই লাইনের পরে নতুন লাইন োকানো হবে।

$বিড়ালproducts.txt

$sed '/পাউডার $/a b01 t বেকিং পাউডার'products.txt

$বিড়ালproducts.txt

উপরের কমান্ডগুলি চালানোর পরে নিম্নলিখিত আউটপুট প্রদর্শিত হবে।

উদাহরণ -5: a ব্যবহার করে ম্যাচিং প্যাটার্নের পরে একাধিক লাইন োকান

নিম্নলিখিত সেড কমান্ড মিলে যাওয়া প্যাটার্নের উপর ভিত্তি করে একটি ফাইলের বিষয়বস্তুর ভিতরে একাধিক লাইন যোগ করার উপায় দেখায়।

এখানে, প্যাটার্ন অনুযায়ী, তৃতীয় লাইনের পরে দুটি লাইন যোগ করা হবে।

$বিড়ালproducts.txt

$sed '/^[a-c]/a b01 t বেকিং পাউডার nb02 t বেকিং সোডা'products.txt

$বিড়ালproducts.txt

উপরের কমান্ডগুলি চালানোর পরে নিম্নলিখিত আউটপুট প্রদর্শিত হবে।

উদাহরণ-6: I ব্যবহার করে একটি প্যাটার্ন মিলানোর পর একটি লাইন সন্নিবেশ করান

$বিড়ালproducts.txt

$sed '/ক্রিম/আমি b01 t বেকিং পাউডার'products.txt

$বিড়ালproducts.txt

উপরের কমান্ডগুলি চালানোর পরে নিম্নলিখিত আউটপুট প্রদর্শিত হবে।

উদাহরণ -7: -i অপশনটি ব্যবহার করে ম্যাচিং প্যাটার্নের পর স্থায়ীভাবে একটি লাইন োকান

নিম্নলিখিত sed কমান্ড দেখায় কিভাবে ফাইলের বিষয়বস্তু স্থায়ীভাবে পরিবর্তন করতে হয়। প্যাটার্নের উপর ভিত্তি করে ফাইলে একটি নতুন লাইন toোকানোর জন্য sed কমান্ডের সাথে i অপশনটি ব্যবহার করা হয়।

$বিড়ালproducts.txt

$sed -আই '/e $/a g01 tGhee'products.txt

$বিড়ালproducts.txt

উপরের কমান্ডগুলি চালানোর পরে নিম্নলিখিত আউটপুট প্রদর্শিত হবে।

উপসংহার:

প্যাটার্ন সহ sed কমান্ড ব্যবহার করে একটি ফাইলে দুই বা ততোধিক লাইন ofোকানোর উপায়গুলি এই টিউটোরিয়ালে দেখানো হয়েছে যাতে পাঠককে প্যাটার্নের উপর ভিত্তি করে সাময়িক বা স্থায়ীভাবে লাইন erোকানোর জন্য এই কমান্ড প্রয়োগ করতে সাহায্য করতে পারে।