Sed (Stream Editor) হল একটি কমান্ড-লাইন টুল যা টেক্সট ফাইলের মধ্যে পরিবর্তন করতে ব্যবহৃত হয়। এটি মূলত "stream editor" হিসেবে কাজ করে, অর্থাৎ এটি ইনপুট ডেটাকে স্ট্রিম হিসেবে গ্রহণ করে এবং তা সরাসরি পরিবর্তন করে ফাইল বা আউটপুটে প্রেরণ করে। Sed কে সাধারণত স্ক্রিপ্টিং এবং অটোমেশন প্রক্রিয়ায় টেক্সট ম্যানিপুলেশন করার জন্য ব্যবহৃত হয়। এটি মূলত একটি non-interactive টুল, যার মানে হলো, আপনি যেভাবে কমান্ড প্রদান করবেন, সেই অনুযায়ী এটি কাজ করবে এবং কোনো ব্যবহারকারী ইন্টারঅ্যাকশন ছাড়াই কাজটি করবে।
Sed এর মৌলিক ধারণা
Sed এর মূল কাজ হলো টেক্সট ফাইল বা স্ট্রিমের মধ্যে নির্দিষ্ট পরিবর্তন করা। এটি search, replace, insert, এবং delete অপারেশনগুলো করতে সক্ষম। আপনি ফাইলের একটি নির্দিষ্ট প্যাটার্ন খুঁজে সেটি মুছে ফেলতে বা পরিবর্তন করতে পারেন, অথবা নতুন কিছু যোগ করতে পারেন।
Sed এর মধ্যে সবচেয়ে সাধারণ কাজগুলোর মধ্যে রয়েছে:
- টেক্সট পরিবর্তন (Search and Replace)
- লাইনের মুছে ফেলা (Delete lines)
- নতুন লাইন যোগ করা (Add new lines)
- টেক্সট ফরম্যাটিং (Text formatting)
- রেগুলার এক্সপ্রেশন (Regular Expressions)
Sed Syntax (সিনট্যাক্স)
Sed এর সাধারণ সিনট্যাক্স হলো:
sed [options] 'command' input-fileএখানে:
- [options]: Sed এর বিভিন্ন অপশন (যেমন
-iইন-প্লেস পরিবর্তনের জন্য) - 'command': Sed এর দেওয়া কমান্ড (যেমন সারে, ডিলিট, ইনসার্ট)
- input-file: যে ফাইল বা স্ট্রিমের সাথে Sed কাজ করবে
Sed সাধারণত এক বা একাধিক কমান্ড গ্রহণ করে। প্রতিটি কমান্ড একটি নির্দিষ্ট কাজ সম্পাদন করে।
Sed এর মৌলিক কমান্ডসমূহ
Search and Replace (সার্চ এবং রিপ্লেস)
Sed ব্যবহার করে আপনি কোনো টেক্সট প্যাটার্ন খুঁজে তাকে প্রতিস্থাপন করতে পারেন। সবচেয়ে সাধারণ কমান্ড হলোs/pattern/replacement/।সিনট্যাক্স:
sed 's/old_text/new_text/' file.txtএখানে:
s: সার্চ এবং রিপ্লেস অপারেশন নির্দেশ করে।old_text: খুঁজে বের করা হবে এমন টেক্সট।new_text: পুরানো টেক্সটের জায়গায় প্রতিস্থাপন হবে।file.txt: যেখানে টেক্সট পরিবর্তন হবে।
উদাহরণ:
sed 's/cat/dog/' file.txtএই কমান্ডটি
file.txtফাইলে প্রথম "cat" শব্দটি "dog"-এ প্রতিস্থাপন করবে।Global Replacement (গ্লোবাল রিপ্লেসমেন্ট)
যদি আপনি একটি লাইনে সমস্ত occurrences পরিবর্তন করতে চান, তাহলেgফ্ল্যাগ ব্যবহার করতে হয়।সিনট্যাক্স:
sed 's/old_text/new_text/g' file.txtউদাহরণ:
sed 's/cat/dog/g' file.txtএই কমান্ডটি
file.txtফাইলে সমস্ত "cat" শব্দকে "dog"-এ পরিবর্তন করবে।Delete Line (লাইন মুছে ফেলা)
Sed দিয়ে আপনি নির্দিষ্ট লাইন মুছে ফেলতে পারেন। এটিdকমান্ডের মাধ্যমে করা হয়।সিনট্যাক্স:
sed 'line_numberd' file.txtউদাহরণ:
sed '3d' file.txtএই কমান্ডটি
file.txtথেকে তৃতীয় লাইনটি মুছে ফেলবে।Add Line (লাইন যোগ করা)
Sed দিয়ে আপনি একটি নির্দিষ্ট লাইনের পরে অথবা আগে নতুন লাইন যোগ করতে পারেন। এটিa(add) অথবাi(insert) কমান্ড দিয়ে করা হয়।সিনট্যাক্স:
sed 'line_numbera new_line' file.txtঅথবা
sed 'line_numberi new_line' file.txtউদাহরণ:
sed '2a This is a new line' file.txtএই কমান্ডটি
file.txtএর দ্বিতীয় লাইনের পরে "This is a new line" যোগ করবে।Print Line (লাইন প্রিন্ট করা)
আপনি কিছু নির্দিষ্ট লাইন প্রিন্ট করতেpকমান্ড ব্যবহার করতে পারেন।সিনট্যাক্স:
sed -n '/pattern/p' file.txtউদাহরণ:
sed -n '/dog/p' file.txtএটি
file.txtথেকে "dog" শব্দযুক্ত লাইনগুলো প্রদর্শন করবে।In-place Editing (ইন-প্লেস এডিটিং)
আপনি ফাইলের মধ্যে সরাসরি পরিবর্তন করতে-iঅপশন ব্যবহার করতে পারেন। এটি কমান্ডটি ফাইলের পরিবর্তন করবে এবং ফাইলের মধ্যে সেভ করবে।সিনট্যাক্স:
sed -i 's/old_text/new_text/g' file.txtউদাহরণ:
sed -i 's/cat/dog/g' file.txtএটি
file.txtফাইলে সমস্ত "cat" শব্দকে "dog"-এ প্রতিস্থাপন করবে এবং তা সরাসরি সেভ করবে।
Sed এর কিছু বিশেষ অপশন
-e: একাধিক Sed কমান্ড রান করতে
-eঅপশন ব্যবহার করা হয়।উদাহরণ:
sed -e 's/cat/dog/' -e 's/dog/bird/' file.txt-n: এটি কোনো আউটপুট প্রদর্শন না করে শুধুমাত্র প্যাটার্ন ম্যাচ হলে আউটপুট প্রদর্শন করে।
উদাহরণ:
sed -n 's/cat/dog/p' file.txt
সারাংশ
Sed হলো একটি শক্তিশালী টুল যা টেক্সট ফাইলের মধ্যে পরিবর্তন করার জন্য ব্যবহৃত হয়। এর মৌলিক কমান্ডগুলোর মধ্যে রয়েছে search, replace, delete, insert, এবং print। Sed সাধারণত স্ক্রিপ্টিং, অটোমেশন এবং সিস্টেম অ্যাডমিনিস্ট্রেশনে ব্যবহৃত হয়, যেখানে আপনাকে দ্রুত এবং কার্যকরভাবে টেক্সট পরিবর্তন করতে হয়।
Read more