Sed (Stream Editor) একটি শক্তিশালী টুল যা Automated Text Processing (স্বয়ংক্রিয় টেক্সট প্রক্রিয়াকরণ) এর জন্য ব্যবহৃত হয়। এটি কমান্ড লাইন থেকে টেক্সট ফাইল বা স্ট্রিমের মধ্যে বিভিন্ন ধরনের পরিবর্তন, ম্যানিপুলেশন, বা ফরম্যাটিং করতে সাহায্য করে। Sed এর মাধ্যমে আপনি search and replace, line deletion, text insertion, substitution, এবং অন্যান্য অনেক ধরনের টেক্সট প্রক্রিয়াকরণ করতে পারেন।
এখানে Sed ব্যবহার করে Automated Text Processing করার বিভিন্ন উপায় এবং প্রক্রিয়া সম্পর্কে বিস্তারিত আলোচনা করা হলো।
1. Search and Replace (প্যাটার্ন খুঁজে প্রতিস্থাপন)
Sed এর সবচেয়ে সাধারণ এবং প্রাথমিক ব্যবহার হল search and replace। আপনি একটি নির্দিষ্ট প্যাটার্ন খুঁজে সেটি অন্য কোনো প্যাটার্ন দিয়ে প্রতিস্থাপন করতে পারেন। এটি প্রায়শই স্ক্রিপ্টিং এবং অটোমেটেড কাজের জন্য ব্যবহৃত হয়।
উদাহরণ 1: প্যাটার্ন খুঁজে প্রতিস্থাপন
sed 's/cat/dog/g' file.txtএটি file.txt ফাইল থেকে "cat" শব্দকে "dog" দিয়ে প্রতিস্থাপন করবে এবং আউটপুটে দেখাবে। g ফ্ল্যাগ দ্বারা, global প্রতিস্থাপন নির্দেশিত হয়, অর্থাৎ সমস্ত occurrences পরিবর্তিত হবে।
উদাহরণ 2: নির্দিষ্ট প্যাটার্নের সাথে পরিবর্তন
sed 's/^Hello/Hi/' file.txtএটি শুধুমাত্র লাইন শুরুতে "Hello" শব্দটি খুঁজে সেটি "Hi" দিয়ে প্রতিস্থাপন করবে।
2. Line Deletion (লাইন মুছে ফেলা)
Sed এর মাধ্যমে আপনি একটি বা একাধিক লাইন মুছে ফেলতে পারেন। এটি d কমান্ড ব্যবহার করে করা হয়। এটি বিশেষভাবে উপকারী যখন আপনাকে নির্দিষ্ট শর্ত পূর্ণ হলে লাইন মুছে ফেলতে হয়।
উদাহরণ 3: নির্দিষ্ট প্যাটার্নের সাথে লাইন মুছে ফেলা
sed '/^#/d' file.txtএটি file.txt ফাইল থেকে সমস্ত কমেন্ট (যেগুলি "#" দিয়ে শুরু) লাইন মুছে ফেলবে।
উদাহরণ 4: নির্দিষ্ট লাইন মুছে ফেলা
sed '3d' file.txtএটি file.txt থেকে তৃতীয় লাইন মুছে ফেলবে।
উদাহরণ 5: খালি লাইন মুছে ফেলা
sed '/^$/d' file.txtএটি file.txt থেকে সমস্ত খালি লাইন মুছে ফেলবে।
3. Text Insertion (নতুন টেক্সট যোগ করা)
Sed দিয়ে আপনি কোনো লাইন বা প্যাটার্নের পরে বা আগে নতুন টেক্সট যোগ করতে পারেন। এটি a (append) এবং i (insert) কমান্ড ব্যবহার করে করা হয়।
উদাহরণ 6: নির্দিষ্ট লাইনের পরে নতুন লাইন যোগ করা
sed '2a This is a new line' file.txtএটি file.txt ফাইলে দ্বিতীয় লাইনের পরে "This is a new line" যোগ করবে।
উদাহরণ 7: নির্দিষ্ট লাইনের আগে নতুন লাইন যোগ করা
sed '3i This is an inserted line' file.txtএটি file.txt ফাইলে তৃতীয় লাইনের আগে "This is an inserted line" যোগ করবে।
4. Automated Substitution with Regular Expressions (রেগুলার এক্সপ্রেশন ব্যবহার করে স্বয়ংক্রিয় প্রতিস্থাপন)
Sed এবং Regular Expressions ব্যবহার করে আপনি আরও জটিল প্যাটার্ন খুঁজে এবং সেটি প্রতিস্থাপন করতে পারেন। এটি স্বয়ংক্রিয়ভাবে টেক্সট ফাইল বা স্ট্রিমের মধ্যে পরিবর্তন আনার জন্য উপকারী।
উদাহরণ 8: ক্যাপিটালাইজেশন (Uppercase) পরিবর্তন করা
ধরা যাক, আপনি file.txt ফাইলের সব ছোট হাতের অক্ষরকে বড় হাতের অক্ষরে পরিবর্তন করতে চান:
sed 's/[a-z]/\U&/g' file.txtএটি file.txt ফাইলে সব ছোট হাতের অক্ষরকে বড় হাতের অক্ষরে পরিবর্তন করবে।
উদাহরণ 9: নির্দিষ্ট শব্দের মধ্যে স্থান পরিবর্তন করা
sed 's/\bcat\b/dog/g' file.txtএটি cat শব্দটি যেখানে আলাদা শব্দ হিসেবে ব্যবহৃত হয়েছে, সেখানে dog দিয়ে প্রতিস্থাপন করবে।
5. Complex Text Processing with Conditional Execution (শর্তাধীন কার্য সম্পাদন)
Sed এ Conditional Execution (শর্তাধীন কার্য সম্পাদন) করতে হলে সাধারণত t (test) এবং b (branch) কমান্ড ব্যবহার করা হয়। আপনি নির্দিষ্ট শর্ত পূর্ণ হলে বিভিন্ন পরিবর্তন করতে পারেন।
উদাহরণ 10: প্যাটার্ন পাওয়া গেলে একটি পরিবর্তন করা
sed '/cat/ t; s/fish/seafood/' file.txtএটি:
- যদি "cat" প্যাটার্ন মেলে, তাহলে পরবর্তী কমান্ডটি (যেমন "fish" প্রতিস্থাপন) চালাবে।
- যদি "cat" না পাওয়া যায়, তবে "fish" শব্দটি "seafood"-এ পরিবর্তন করবে।
6. File Manipulation with Multiple Files (একাধিক ফাইলের মধ্যে টেক্সট পরিবর্তন)
Sed ব্যবহার করে আপনি একাধিক ফাইলে একই সময় একই পরিবর্তন করতে পারেন।
উদাহরণ 11: একাধিক ফাইলে একই পরিবর্তন প্রয়োগ করা
sed -i 's/cat/dog/g' file1.txt file2.txt file3.txtএটি file1.txt, file2.txt এবং file3.txt ফাইলে সমস্ত "cat" শব্দকে "dog"-এ প্রতিস্থাপন করবে এবং তা সরাসরি সেভ করবে।
7. Using Sed with Pipes for Automated Text Processing
Sed এর মাধ্যমে pipes ব্যবহার করে আপনি একাধিক কমান্ড একত্রে চালাতে পারেন। এটি একটি টেক্সট স্ট্রিমের মধ্যে পরিবর্তন করতে এবং ফলস্বরূপ অন্য কমান্ডের আউটপুট দিতে সাহায্য করে।
উদাহরণ 12: Pipe এর মাধ্যমে টেক্সট প্রক্রিয়া করা
cat file.txt | sed 's/cat/dog/g' | sed 's/fish/seafood/g'এটি:
file.txtফাইলের "cat" শব্দকে "dog"-এ প্রতিস্থাপন করবে,- তারপর "fish" শব্দটিকে "seafood"-এ প্রতিস্থাপন করবে।
Conclusion
- Automated Text Processing করার জন্য Sed একটি শক্তিশালী টুল। আপনি search and replace, line deletion, text insertion, substitution, এবং complex pattern matching করতে পারেন।
- Sed এর মাধ্যমে আপনি in-place editing, multiple file manipulation, এবং pipe ব্যবহার করে স্বয়ংক্রিয়ভাবে টেক্সট প্রক্রিয়া করতে পারেন।
- এটি স্ক্রিপ্টিং এবং টেক্সট ম্যানিপুলেশনের জন্য অত্যন্ত কার্যকর, যা দৈনিক টাস্ক বা লগ ফাইল বিশ্লেষণে খুবই উপকারী হতে পারে।
Read more