স্ট্রীম এডিটর (SED): মৌলিক

Strima Editara Sed Maulika



SED, যা স্ট্রিম এডিটর নামেও পরিচিত, একটি খুব দরকারী টুল। এটি একটি নির্দিষ্ট শব্দ বা প্যাটার্ন অনুসন্ধান করতে এবং পরবর্তীতে শব্দ বা প্যাটার্নে কিছু করতে বা অন্য কথায় এটি রূপান্তর করতে ব্যবহৃত হয়। উইন্ডোজে, SED 'ফাইন্ড' এবং 'প্রতিস্থাপন' ফাংশন হিসাবেও পরিচিত। SED উবুন্টুর সাথে আসে, তাই কিছু ইনস্টল করার দরকার নেই; শুধু এটি ব্যবহার শুরু করুন। এই টিউটোরিয়ালে, আমরা আপনাকে SED বা স্ট্রিম এডিটর কিভাবে ব্যবহার করতে হয় তা বলব।

'এস' কমান্ড

SED বা স্ট্রীম এডিটরের সব কমান্ডের মধ্যে সবচেয়ে গুরুত্বপূর্ণ হল 's' কমান্ড। 's' বিকল্পের জন্য দাঁড়ায়। সিনট্যাক্স নিম্নরূপ:







's / regexp / প্রতিস্থাপন / পতাকা


সুতরাং, উদাহরণগুলির জন্য 'file.txt' নামে একটি ফাইল ব্যবহার করা যাক। আপনি যদি এটিকে বিড়াল করেন তাহলে 'file.txt' কেমন দেখায়:




's' কমান্ড কীভাবে কাজ করে তা দেখানোর জন্য একটি উদাহরণ ব্যবহার করা যাক:



কিন্তু 's / প্রথম / চাঁদ / i’ file.txt > moon.txt


যখন এই ধরনের একটি অভিব্যক্তি দেওয়া হয়, এর অর্থ হল:





    • s - এটি বিকল্প জন্য দাঁড়িয়েছে.
    • প্রথম - 'file.txt' নামক ফাইলটিতে অনুসন্ধান করার জন্য শব্দ।
    • চাঁদ - 'প্রথম' শব্দটি 'চাঁদ' শব্দ দ্বারা প্রতিস্থাপিত হয়েছে।
    • i - এর অর্থ উপেক্ষা করা। আমরা প্রথম বিটের জন্য এই অংশটি উপেক্ষা করব।
    • file.txt - ফাইল যেখানে SED প্যাটার্ন বা শব্দ অনুসন্ধান করতে যাচ্ছে। এই ক্ষেত্রে, 'প্রথম' শব্দটি হবে:
    • file.txt এ অনুসন্ধান করা হয়েছে

    • moon.txt - যখন 'প্রথম' শব্দটি 'মুন' শব্দ দ্বারা প্রতিস্থাপিত হয়, তখন এটি 'moon.txt' এর অধীনে সংরক্ষিত হবে।

তাই, এখানে কি ঘটছে? SED শুধুমাত্র প্রথম উদাহরণে 'চাঁদ' এর জন্য 'প্রথম' শব্দটি প্রতিস্থাপন করে (এর মানে হল যে 'প্রথম' শব্দটি একাধিকবার ঘটলে, এটি এটিকে সর্বত্র প্রতিস্থাপন করবে না বা একাধিকবার প্রতিস্থাপন করবে না)। এটি যে ফাইলটি অনুসন্ধান করে তাকে 'file.txt' বলা হয় এবং একবার রূপান্তর বা প্রতিস্থাপন করা হয়ে গেলে, এটি 'moon.txt' এর অধীনে সংরক্ষণ করা হবে।



এটি দেখতে এটির মতো:


অনুগ্রহ করে মনে রাখবেন '/' যেখানে এটি থাকা দরকার সেখানে রাখতে। আপনি একটি '/' বাদ দিলে, SED কমান্ডটি গ্রহণ করবে না।

এই পর্যন্ত, আমরা শুধুমাত্র 'প্রথম' শব্দটিকে প্রতিস্থাপনের সাথে 'এনকাউন্টারড' দিয়ে প্রতিস্থাপন করেছি। এখন, ধরুন আমরা তৃতীয় লাইনে 'ফেরেশতা' শব্দটি দিয়ে 'রেখা' শব্দটি প্রতিস্থাপন করতে চাই (যা অনেকবার ঘটে - চারবার নির্দিষ্ট হতে)।

কিভাবে আমরা বিশেষভাবে যে তৃতীয় লাইন টার্গেট না? আমরা নিম্নলিখিত কমান্ড ব্যবহার করি:

কিন্তু '3s / লাইন / ফেরেশতা / i’ file.txt > angel.txt


তো, এখানে কি ঘটেছে? ভাল, '3' লাইন নম্বর নির্দিষ্ট করে। অতএব, এটি তৃতীয় লাইনে যায়। তারপর, 'file.txt' নামক ফাইলে 'এঞ্জেল' এর জন্য 'লাইন' শব্দটি প্রতিস্থাপন করুন এবং রূপান্তরিত ফাইলটিকে 'angel.txt' হিসাবে সংরক্ষণ করুন।


আমরা যদি '3' এবং '4' লাইনগুলি প্রতিস্থাপন বা রূপান্তর করতে চাই?

কিন্তু ' 3 ,4s / লাইন / ফেরেশতা / i’ file.txt > angel2.txt



মনে রাখবেন যে পূর্ববর্তী উদাহরণে, আমরা উপেক্ষা করার জন্য 'i' পতাকা ব্যবহার করেছি। এখন, আমরা গ্লোবালের জন্য 'g' পতাকা ব্যবহার করি।

's' কমান্ড কীভাবে কাজ করে তা দেখানোর জন্য একটি উদাহরণ ব্যবহার করা যাক:

কিন্তু 's / লাইন / সূর্য / g’ file.txt > sun.txt


যখন এই ধরনের একটি অভিব্যক্তি দেওয়া হয়, এর অর্থ হল:

'g' এর অর্থ বিশ্বব্যাপী। মনে রাখবেন যে প্রথম উদাহরণে, যখন আমরা 'i' পতাকা ব্যবহার করি, শুধুমাত্র একটি একক প্রতিস্থাপন আছে। এখন যেহেতু আমরা গ্লোবালের জন্য একটি 'g' যোগ করেছি, এর অর্থ সর্বত্র বিকল্প। সুতরাং, প্রথম লাইন, দ্বিতীয় লাইন, তৃতীয় লাইন এবং শেষ লাইন বলার পরিবর্তে, এটি প্রথম সূর্য, দ্বিতীয় সূর্য, তৃতীয় সূর্য এবং শেষ সূর্য বলে। এটি সম্পূর্ণ ফাইলের (সর্বত্র) শব্দ লাইনটিকে 'সূর্য' শব্দ দিয়ে প্রতিস্থাপন করে।


এখন, যদি আমরা একটি শব্দের উপর ভিত্তি করে একটি একক লাইন নির্বাচন করতে চাই তাহলে কী হবে? আচ্ছা, আমরা দেখতে পাচ্ছি যে 'file.txt' এর শেষ লাইনে 'last' শব্দটি আছে। এখন, ধরুন আমরা চাই যে 'এটি শেষ লাইন। এটাই শেষ বাক্য।' বাক্যটি হয়ে উঠবে 'এটি শেষ ভূত। এটাই শেষ বাক্য।'

আমরা নিম্নলিখিত লিখি:

কিন্তু ' / শেষ / s / লাইন / প্রেতাত্মা / ' file.txt > ghost.txt


এখানে 'শেষ' SED কে বলে যে লাইনটি 'লাস্ট' শব্দটি আছে এবং তারপর সেই লাইনের মধ্যে 'ভূত' দিয়ে 'লাইন' শব্দটি প্রতিস্থাপন করতে।


এখন, ধরুন আমরা উল্টোটা করতে চাই। ধরুন আমরা চাই যে 'শেষ' শব্দটি ছাড়া প্রতিটি লাইনের 'লাইন' শব্দটি 'ভূত' এ পরিবর্তিত হোক। চলুন নিম্নলিখিত লিখুন:

কিন্তু ' / শেষ /! s / লাইন / প্রেতাত্মা / ' file.txt > ghost2.txt


আপনি এখানে দেখতে পাচ্ছেন, শেষটি (যাতে 'শেষ' শব্দটি রয়েছে) ব্যতীত প্রতিটি লাইনে 'ভূত' শব্দটি দিয়ে প্রতিস্থাপিত 'লাইন' শব্দটি রয়েছে।


আমরা লাইন নম্বর দিয়েও এটি করতে পারি:

কিন্তু ' 3 , 4 ! s / লাইন / রাত / i’ file.txt > night.txt


এই ক্ষেত্রে, লাইন 3 এবং 4 বাদ দেওয়া হয়েছে কিন্তু প্রতিটি লাইনে 'রাত্রি' শব্দ দ্বারা প্রতিস্থাপিত 'লাইন' শব্দ রয়েছে।

একাধিক কমান্ড

এখন, যদি আপনি একাধিক কমান্ড ছিল? আপনি কি একবারে বা একবারে এটি করতে চান এবং নিজেকে কিছু সময় বাঁচাতে এবং কাজ করতে চান?

আমরা যদি 'প্রথম' শব্দটিকে 'দিন', 'দ্বিতীয়' থেকে 'রাত্রি' এবং 'বাকি' থেকে 'ভূত' তে পরিবর্তন করতে চাই তবে কী হবে? আমরা এটি করতে সেমি-কোলন ব্যবহার করি। শেষে সেমি-কোলন রাখতে ভুলবেন না!

অনুগ্রহ করে মনে রাখবেন যে আপনাকে একেবারে 'i' পতাকা বা 'উপেক্ষা' পতাকা রাখতে হবে না তবে রূপান্তর বাক্যাংশের পরে আপনাকে অবশ্যই স্ল্যাশ (/) রাখতে হবে।

এখন, একটি উদাহরণ দিয়ে এটি পরীক্ষা করা যাক:

কিন্তু 's / প্রথম / দিন / ; s / দ্বিতীয় / রাত / ; s / তৃতীয় / প্রেতাত্মা / ; s / শেষ / প্রেতাত্মা / ;’ file.txt > combination.txt


উপসংহার

স্ট্রীম এডিটর বা SED হল একটি শব্দ বা প্যাটার্ন নির্বাচন করার এবং রূপান্তরিত করার একটি উপায়। এটি আসলে উইন্ডোর 'খোঁজ' এবং 'প্রতিস্থাপন' ফাংশনের সমতুল্য কমান্ড-লাইন। SED কমান্ডটি সত্যিই জটিল হতে পারে তবে আপনি যদি অন্তত বেসিকগুলি জানেন তবে আপনি এটি গ্রহণ করতে প্রস্তুত! SED আসলে অনেক ফাংশন সহ একটি খুব শক্তিশালী টুল। যদিও আমরা সেগুলিকে এক টিউটোরিয়ালে কভার করতে পারি না, আমরা SED এর মূল বিষয়গুলি কভার করেছি। সারমর্মে, আমরা শিখেছি কিভাবে একটি নির্দিষ্ট শব্দকে 's' কমান্ড ব্যবহার করে রূপান্তর করতে হয় যেখানে 's' এর বিকল্প বোঝায়। আমরা অন্য শব্দের জন্য শব্দগুলি প্রতিস্থাপন করতে পারি, বেছে বেছে একটি লাইন বেছে নিতে পারি যেখানে প্রতিস্থাপন ঘটবে, বা এমনকি এটিকে অস্বীকারও করতে পারি। যেভাবেই হোক, এটি SED সম্পর্কে সবচেয়ে সহজ অংশ।

শুভ কোডিং!