Shell Scripts এর মধ্যে Sed ব্যবহার করা একটি শক্তিশালী পদ্ধতি, যা আপনাকে ফাইলের মধ্যে টেক্সট প্রক্রিয়া করতে, পরিবর্তন করতে এবং ফিল্টার করতে সাহায্য করে। Sed কমান্ডের মাধ্যমে আপনি একাধিক টেক্সট ম্যানিপুলেশন কাজ যেমন, search and replace, delete lines, insert lines, এবং pattern matching করতে পারেন।
Shell Scripts এ Sed ব্যবহার করার উদ্দেশ্য
Shell Scripts এ Sed ব্যবহার করার কিছু মূল উদ্দেশ্য হলো:
- ফাইলের মধ্যে একাধিক পরিবর্তন একসাথে করতে।
- নির্দিষ্ট প্যাটার্ন বা শব্দের সাথে মেলানো লাইনগুলোর উপর অপারেশন প্রয়োগ করতে।
- ফাইলের মধ্যে ডেটা বা লাইন মুছে ফেলা বা প্রতিস্থাপন করতে।
- বিভিন্ন টেক্সট ফরম্যাটিং এবং বিশ্লেষণ করতে।
Shell Script এর মধ্যে Sed ব্যবহার করার জন্য সাধারণ সিনট্যাক্স
#!/bin/bash
sed 'command' file.txtএখানে:
#!/bin/bash: এটি শেল স্ক্রিপ্টের প্রথম লাইন, যা স্ক্রিপ্টের শেল পরিবেশ (Bash) নির্দেশ করে।command: এটি Sed কমান্ড যা আপনি ফাইল বা স্ট্রিমে চালাতে চান।file.txt: ইনপুট ফাইল যেখানে Sed কমান্ড প্রয়োগ করা হবে।
Shell Script এ Sed কমান্ড ব্যবহার করার কিছু উদাহরণ
1. একটি নির্দিষ্ট শব্দ প্রতিস্থাপন (Search and Replace)
Shell Script ব্যবহার করে আপনি Sed এর মাধ্যমে একটি নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজে সেটিকে প্রতিস্থাপন করতে পারেন।
#!/bin/bash
# "apple" শব্দকে "orange" দিয়ে প্রতিস্থাপন করা
sed -i 's/apple/orange/g' file.txtএটি file.txt ফাইলে সমস্ত "apple" শব্দকে "orange"-এ প্রতিস্থাপন করবে এবং পরিবর্তনগুলি সরাসরি ফাইলে সেভ হবে।
2. নির্দিষ্ট লাইন মুছে ফেলা
আপনি যদি কোনো নির্দিষ্ট লাইন মুছে ফেলতে চান, তাহলে d (delete) কমান্ড ব্যবহার করতে পারেন।
#!/bin/bash
# দ্বিতীয় লাইন মুছে ফেলা
sed -i '2d' file.txtএটি file.txt ফাইলের দ্বিতীয় লাইনটি মুছে ফেলবে।
3. প্যাটার্ন অনুসারে লাইন মুছে ফেলা
Sed ব্যবহার করে আপনি নির্দিষ্ট প্যাটার্নের সাথে মিলানো লাইনগুলো মুছে ফেলতে পারেন।
#!/bin/bash
# "cat" শব্দযুক্ত লাইনগুলো মুছে ফেলা
sed -i '/cat/d' file.txtএটি file.txt ফাইল থেকে "cat" শব্দযুক্ত সমস্ত লাইন মুছে ফেলবে।
4. নতুন লাইন যোগ করা
Sed এর মাধ্যমে আপনি নির্দিষ্ট স্থানে নতুন লাইন যোগ করতে পারেন।
#!/bin/bash
# দ্বিতীয় লাইনের পরে নতুন লাইন যোগ করা
sed -i '2a This is a new line' file.txtএটি file.txt ফাইলের দ্বিতীয় লাইনের পরে "This is a new line" যোগ করবে।
5. একাধিক Sed কমান্ড একসাথে চালানো
আপনি -e অপশন ব্যবহার করে একাধিক Sed কমান্ড একসাথে চালাতে পারেন। যেমন, প্রথমে একটি শব্দ প্রতিস্থাপন এবং তারপর একটি লাইন মুছে ফেলা।
#!/bin/bash
# প্রথমে "apple" কে "orange" দিয়ে প্রতিস্থাপন এবং তারপর দ্বিতীয় লাইনটি মুছে ফেলা
sed -i -e 's/apple/orange/g' -e '2d' file.txtএটি:
- "apple" শব্দকে "orange"-এ প্রতিস্থাপন করবে।
- দ্বিতীয় লাইনটি মুছে ফেলবে।
6. ফাইলের মধ্যে নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজে আউটপুট দেখানো
আপনি Sed ব্যবহার করে একটি নির্দিষ্ট প্যাটার্ন খুঁজে সেই প্যাটার্ন মেলানো লাইনগুলো দেখতে পারেন।
#!/bin/bash
# "cat" শব্দের সাথে মেলা সব লাইন দেখানো
sed -n '/cat/p' file.txtএটি file.txt ফাইল থেকে "cat" শব্দের সাথে মেলা সমস্ত লাইন আউটপুটে প্রদর্শন করবে।
7. Multiple Files এর উপর Sed প্রয়োগ
একাধিক ফাইলের উপর Sed কমান্ড প্রয়োগ করতে, আপনি একাধিক ফাইলকে ইনপুট হিসেবে দিতে পারেন।
#!/bin/bash
# "apple" শব্দটিকে "orange" দিয়ে প্রতিস্থাপন করে একাধিক ফাইলে
sed -i 's/apple/orange/g' file1.txt file2.txt file3.txtএটি file1.txt, file2.txt, এবং file3.txt ফাইলে "apple" শব্দটিকে "orange"-এ প্রতিস্থাপন করবে।
Shell Script এ Sed কমান্ডের মাধ্যমে কিছু উন্নত কার্যকারিতা
8. Text Substitution with Variables
Sed স্ক্রিপ্টে শেল ভেরিয়েবল ব্যবহার করা যেতে পারে, যা স্ক্রিপ্টে ডাইনামিকভাবে মান পরিবর্তন করতে সাহায্য করে।
#!/bin/bash
# একটি ভেরিয়েবল ব্যবহার করে "apple" শব্দকে প্রতিস্থাপন করা
word="apple"
sed -i "s/$word/orange/g" file.txtএটি file.txt ফাইলে $word ভেরিয়েবল (যার মান "apple") দিয়ে প্রতিস্থাপন করবে।
9. Looping with Sed in Shell Script
Shell স্ক্রিপ্টে Sed ব্যবহার করে লুপ তৈরি করা সম্ভব। এটি অনেক বড় ফাইলের জন্য কার্যকরী হতে পারে।
#!/bin/bash
# প্রতিটি ফাইলের উপর Sed কমান্ড প্রয়োগ করা
for file in *.txt
do
sed -i 's/apple/orange/g' "$file"
doneএটি বর্তমান ডিরেক্টরিতে থাকা সমস্ত .txt ফাইলে "apple" শব্দকে "orange"-এ প্রতিস্থাপন করবে।
Conclusion
Shell Scripts এ Sed ব্যবহার করলে আপনি ফাইল ম্যানিপুলেশন কাজগুলো দ্রুত এবং কার্যকরভাবে সম্পন্ন করতে পারেন। এর মাধ্যমে:
- আপনি বিভিন্ন ফাইলে একযোগে পরিবর্তন করতে পারেন।
- ফাইলের মধ্যে সরাসরি পরিবর্তন করতে পারেন।
- একাধিক Sed কমান্ড দিয়ে complex editing করতে পারেন।
- শেল ভেরিয়েবল এবং লুপিং ব্যবহার করে ডাইনামিকভাবে কাজ করতে পারেন।
Sed Shell Scripts এর মধ্যে খুবই শক্তিশালী একটি টুল, যা টেক্সট প্রক্রিয়া ও ফিল্টারিংয়ের কাজে অত্যন্ত সহায়ক।
Read more