দ্রষ্টব্য: আমরা একটি ফাইলে একটি স্ট্রিং প্রতিস্থাপন করার জন্য sed কমান্ডের ব্যবহার প্রদর্শন করার জন্য লিনাক্স মিন্ট 20 ব্যবহার করব। আপনি চাইলে লিনাক্সের অন্য কোন ফ্লেভার ব্যবহার করতে পারেন।
Sed কমান্ড ব্যবহার:
এখন আমরা আপনাকে লিনাক্সে sed কমান্ডের ব্যবহার চিত্রিত করার জন্য কিছু আকর্ষণীয় উদাহরণ দেখাতে যাচ্ছি। আসুন দেখি, বিভিন্ন পরিস্থিতিতে এই কমান্ড কিভাবে কাজ করে।
প্রদর্শনের জন্য একটি টেক্সট ফাইল তৈরি করা:
Sed কমান্ডের ব্যবহার প্রদর্শনের জন্য, আমরা একটি টেক্সট ফাইলের সাথে কাজ করতে চাই। যাইহোক, আপনি এমনকি একটি বাশ ফাইল বা আপনার পছন্দের অন্য কোন ফাইল তৈরি করতে পারেন। দ্বিতীয়ত, আমরা হোম ডিরেক্টরিতে ফাইল তৈরি করব যাতে এই ফাইলটি অ্যাক্সেস করার সময় আমাদের কোন জটিল পথ নির্দিষ্ট করতে না হয়। একটি টেক্সট ফাইল তৈরির জন্য, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করা উচিত:
আপনার লিনাক্স মিন্ট 20 টাস্কবারে অবস্থিত ফাইল ম্যানেজার আইকনে ক্লিক করুন:
এখন হোম ডিরেক্টরিতে একটি নতুন টেক্সট ফাইল তৈরি করুন সেখানে যেকোনো জায়গায় ডান ক্লিক করে এবং তারপর ক্যাসকেডিং মেনু থেকে নতুন ডকুমেন্ট অপশন এবং সাব-ক্যাসকেডিং মেনু থেকে খালি ডকুমেন্ট অপশন বেছে নিন। একবার টেক্সট ফাইল তৈরি হয়ে গেলে, এটির একটি উপযুক্ত নাম দিন। এই বিশেষ উদাহরণের জন্য, আমি এটি sed.txt নামে নামকরণ করেছি।
এই ফাইলটি খুলতে ডাবল ক্লিক করুন এবং নীচের ছবিতে দেখানো যে কোনও র্যান্ডম টেক্সট টাইপ করুন। Ctrl +S চেপে এই টেক্সট ফাইলটি সেভ করুন এবং তারপর বন্ধ করুন।
এখন নিচের ছবিতে দেখানো লিনাক্স মিন্ট ২০ -এ টার্মিনাল চালু করুন:
লিনাক্স মিন্ট ২০ -এ টার্মিনাল চালু করার পর, আপনি নীচে উল্লিখিত সমস্ত উদাহরণ একের পর এক দেখতে পারেন।
প্রদত্ত শব্দের সমস্ত ঘটনার প্রতিস্থাপনের জন্য sed কমান্ড ব্যবহার করা:
আপনি একটি পাঠ্য ফাইলে প্রদত্ত শব্দের সমস্ত ঘটনার প্রতিস্থাপনের জন্য sed কমান্ডটি ব্যবহার করতে পারেন। এই লক্ষ্য অর্জনের সিনট্যাক্স নিচে উল্লেখ করা হলো:
$sed'গুলি/sed/FindWord/প্রতিস্থাপন শব্দ/'File.txtএখানে, আপনি ফাইন্ডওয়ার্ডকে সেই শব্দ দিয়ে প্রতিস্থাপন করতে চান যা আপনি প্রতিস্থাপন করতে চান এবং প্রতিস্থাপন শব্দটিকে প্রতিস্থাপন শব্দটি দিয়ে প্রতিস্থাপন করতে চান। তাছাড়া, আপনি যে ফাইলটি এই প্রতিস্থাপন করতে চান সেই ফাইলের নামের সাথে ফাইলটি প্রতিস্থাপন করতে হবে। এই পরিস্থিতিতে, আমি FindWord কে sed এবং ReplaceWord দিয়ে প্রতিস্থাপন করেছি। আমাদের ফাইলের নাম ছিল sed.txt। এটি নিম্নলিখিত ছবিতেও দেখানো হয়েছে:
এই কমান্ডের সফল প্রয়োগ আপনাকে আপনার টার্মিনালে এই কমান্ডটি চালানোর কারণে ঘটে যাওয়া পরিবর্তনগুলি দেখাবে:
প্রতিটি লাইনে প্রদত্ত শব্দের নবম ঘটনা প্রতিস্থাপনের জন্য sed কমান্ড ব্যবহার করা:
উপরের দৃশ্যপটটি ছিল সবচেয়ে সহজ প্রতিস্থাপনের দৃশ্যকল্প, তবে মাঝে মাঝে, আপনি একটি শব্দের সমস্ত ঘটনার প্রতিস্থাপন করতে চান না বরং আপনি সমস্ত শব্দের মধ্যে সেই শব্দের প্রথম, দ্বিতীয় বা নবম ঘটনার প্রতিস্থাপন করতে চান। এটি করার জন্য, আপনি নিম্নলিখিত কমান্ডটি চালাতে পারেন:
$sed'গুলি/FindWord/প্রতিস্থাপন শব্দ/num 'file.txtএখানে, আপনি ফাইন্ডওয়ার্ডকে সেই শব্দ দিয়ে প্রতিস্থাপন করতে চান যা আপনি প্রতিস্থাপন করতে চান এবং প্রতিস্থাপন শব্দটিকে প্রতিস্থাপন শব্দটি দিয়ে প্রতিস্থাপন করতে চান। তাছাড়া, আপনি যে ফাইলটি এই প্রতিস্থাপন করতে চান সেই ফাইলের নামের সাথে ফাইলটি প্রতিস্থাপন করতে হবে। এই পরিস্থিতিতে, আমি FindWord প্রতিস্থাপন করেছি এবং প্রতিস্থাপন ওয়ার্ডকে sed দিয়ে প্রতিস্থাপন করেছি। আমাদের ফাইলের নাম ছিল sed.txt। এছাড়াও, সংজ্ঞায়িত হচ্ছে শব্দের উপস্থিতি বা অবস্থানকে প্রতিস্থাপিত করা। প্রদর্শিত উদাহরণে, আমি নীচের ছবিতে দেখানো হিসাবে প্রতিটি লাইনে sed দিয়ে প্রতিস্থাপনের প্রথম ঘটনাটি প্রতিস্থাপন করতে চাই:
এই কমান্ডের সফল প্রয়োগ আপনাকে আপনার টার্মিনালে এই কমান্ডটি চালানোর কারণে ঘটে যাওয়া পরিবর্তনগুলি দেখাবে:
একটি নির্দিষ্ট লাইনে প্রদত্ত শব্দ প্রতিস্থাপনের জন্য sed কমান্ড ব্যবহার করা:
মাঝে মাঝে, আপনি শুধুমাত্র একটি নির্দিষ্ট লাইনে একটি প্রদত্ত শব্দ প্রতিস্থাপন করতে চান এবং পুরো নথিতে নয়। এটি করার জন্য, আপনাকে স্পষ্টভাবে নিম্নলিখিত কমান্ডে সেই নির্দিষ্ট লাইন নম্বরটি নির্দিষ্ট করতে হবে:
$sed‘লাইননাম এস/FindWord/প্রতিস্থাপন শব্দ/'File.txtএখানে, আপনি ফাইন্ডওয়ার্ডকে সেই শব্দ দিয়ে প্রতিস্থাপন করতে চান যা আপনি প্রতিস্থাপন করতে চান এবং প্রতিস্থাপন শব্দটিকে প্রতিস্থাপন শব্দটি দিয়ে প্রতিস্থাপন করতে চান। তাছাড়া, আপনি যে ফাইলটি এই প্রতিস্থাপন করতে চান সেই ফাইলের নামের সাথে ফাইলটি প্রতিস্থাপন করতে হবে। এই পরিস্থিতিতে, আমি FindWord sed এবং ReplaceWord কে প্রতিস্থাপনের সাথে প্রতিস্থাপন করেছি। আমাদের ফাইলের নাম ছিল sed.txt। এছাড়াও, আপনাকে নির্দিষ্ট লাইনের লাইন নম্বর দিয়ে LineNum প্রতিস্থাপন করতে হবে যেখানে আপনি প্রতিস্থাপন করতে চান। এই উদাহরণে, আমরা নীচের ছবিতে দেখানো হিসাবে আমাদের ফাইলের লাইন নম্বর 2 এ প্রতিস্থাপনের সাথে sed প্রতিস্থাপন করতে চেয়েছিলাম:
এই কমান্ডের সফল প্রয়োগ আপনাকে আপনার টার্মিনালে এই কমান্ডটি চালানোর কারণে ঘটে যাওয়া পরিবর্তনগুলি দেখাবে। আপনি সহজেই যাচাই করতে পারেন যে উল্লিখিত পরিবর্তনগুলি কেবল আমাদের ফাইলের লাইন নম্বর 2 এ ঘটেছে এবং পুরো পাঠ্যে নয়।
উপসংহার:
যখনই আপনি কোন ফাইলে কোন শব্দ প্রতিস্থাপনের প্রয়োজন অনুভব করেন, তখন আপনাকে প্রথমেই করতে হবে আপনার বিশেষ প্রয়োজনীয়তা চিহ্নিত করা অর্থাৎ আপনি পুরো ফাইলটিতে সেই নির্দিষ্ট শব্দটি প্রতিস্থাপন করতে চান কিনা, অথবা আপনি একটি নির্দিষ্ট ঘটনার প্রতিস্থাপন করতে চান সেই বিশেষ শব্দ, অথবা আপনি একটি নির্দিষ্ট লাইনে সেই শব্দটি প্রতিস্থাপন করতে চান। একবার আপনি আপনার বিশেষ দৃশ্যপট চিহ্নিত করলে, আপনি এই নিবন্ধে আলোচিত উদাহরণগুলি থেকে সেই নির্দিষ্ট পদ্ধতিটি ব্যবহার করতে পারেন।