Sed (Stream Editor) ব্যবহার করে আপনি addressing এর মাধ্যমে নির্দিষ্ট অংশে অপারেশন করতে পারেন, যেখানে আপনি কোনো নির্দিষ্ট লাইনের মধ্যে বা একটি নির্দিষ্ট প্যাটার্নের ভিত্তিতে অপারেশন চালাতে পারেন। Sed এর মাধ্যমে addressing করা হলে আপনি ফাইলের নির্দিষ্ট অংশে কেবলমাত্র পরিবর্তন করতে সক্ষম হন, যা আপনার কাজকে আরও কাস্টমাইজড এবং নির্দিষ্ট করতে সাহায্য করে।
Sed Addressing এর মৌলিক ধারণা
Sed এ address হল একটি বা একাধিক লাইন যা আপনি নির্দিষ্ট করতে পারেন, যাতে আপনি শুধুমাত্র সেই লাইনগুলোর উপর কমান্ড প্রয়োগ করতে পারেন। আপনি নির্দিষ্ট লাইন সংখ্যা বা প্যাটার্ন অনুসারে একটি address নির্বাচন করতে পারেন।
Sed Addressing এর সিনট্যাক্স
sed 'address command' file.txtএখানে:
- address: একটি লাইন সংখ্যা বা প্যাটার্ন যা আপনি নির্বাচন করবেন।
- command: Sed এর যে কমান্ডটি আপনি প্রয়োগ করতে চান (যেমন
s- সাবস্টিটিউট,d- ডিলিট,p- প্রিন্ট ইত্যাদি)।
Sed Addressing এর প্রকারভেদ
লাইন নম্বরের মাধ্যমে addressing
Sed তে আপনি সরাসরি একটি নির্দিষ্ট লাইন নম্বর দিয়ে addressing করতে পারেন। এক্ষেত্রে, আপনার নির্দেশিত লাইন নম্বরে কমান্ডটি প্রয়োগ হবে।সিনট্যাক্স:
sed 'linenumber command' file.txtউদাহরণ:
ফাইলের 5 নম্বর লাইনে "apple" শব্দটি "fruit" দিয়ে পরিবর্তন করতে:sed '5s/apple/fruit/' file.txtএখানে, শুধু 5 নম্বর লাইনে "apple" কে "fruit" দিয়ে প্রতিস্থাপন করা হবে।
রেঞ্জের মাধ্যমে addressing
আপনি একটি লাইন রেঞ্জের মধ্যেও অপারেশন করতে পারেন। এই ক্ষেত্রে, দুটি লাইন নম্বর বা প্যাটার্ন দিয়ে শুরু এবং শেষ লাইন নির্ধারণ করা হয়।সিনট্যাক্স:
sed 'start_line,end_line command' file.txtউদাহরণ:
2 থেকে 4 নম্বর লাইনের মধ্যে "apple" শব্দকে "fruit" দিয়ে পরিবর্তন করতে:sed '2,4s/apple/fruit/' file.txtএটি লাইন 2 থেকে 4 পর্যন্ত "apple" কে "fruit" দিয়ে প্রতিস্থাপন করবে।
প্যাটার্নের মাধ্যমে addressing
আপনি একটি নির্দিষ্ট প্যাটার্নের মাধ্যমে addressing করতে পারেন। অর্থাৎ, যদি কোনো লাইন ওই প্যাটার্নের সাথে মেলে, তবে Sed কমান্ডটি ঐ লাইনে প্রয়োগ করবে।সিনট্যাক্স:
sed '/pattern/command' file.txtউদাহরণ:
যদি আপনি "apple" শব্দ সহ যেকোনো লাইনে "fruit" প্রতিস্থাপন করতে চান, তবে:sed '/apple/s/apple/fruit/' file.txtএখানে, যেসব লাইন "apple" ধারণ করে, সেগুলোর মধ্যে "apple" শব্দটি "fruit"-এ প্রতিস্থাপন হবে।
চলমান প্যাটার্নের মাধ্যমে addressing
আপনি একটি প্যাটার্ন ব্যবহার করতে পারেন যা একটি নির্দিষ্ট প্যাটার্ন পাওয়ার পরে পরবর্তী লাইন বা অংশে কমান্ড প্রয়োগ করবে। এটিnকমান্ডের সাহায্যে করা হয়।সিনট্যাক্স:
sed '/pattern/{command; n;}' file.txtউদাহরণ:
যদি আপনি "apple" প্যাটার্ন মেলে এমন লাইনগুলো পরবর্তী লাইন সহ প্রদর্শন করতে চান:sed '/apple/{p; n;}' file.txtএটি "apple" শব্দযুক্ত লাইনটি প্রিন্ট করবে এবং তারপর পরবর্তী লাইনের কন্টেন্টও প্রদর্শন করবে।
Sed এর মাধ্যমে নির্দিষ্ট অংশে অপারেশন করার কিছু উদাহরণ
1. একটি নির্দিষ্ট লাইন পরিবর্তন করা
ফাইলের 7 নম্বর লাইনে "cat" শব্দকে "dog" দিয়ে পরিবর্তন করতে:
sed '7s/cat/dog/' file.txt2. একটি রেঞ্জের মধ্যে পরিবর্তন করা
3 থেকে 6 নম্বর লাইন পর্যন্ত "apple" শব্দকে "orange" দিয়ে পরিবর্তন করতে:
sed '3,6s/apple/orange/' file.txt3. প্যাটার্ন অনুসারে পরিবর্তন করা
যেসব লাইনে "apple" শব্দ রয়েছে, সেগুলোর "apple" শব্দটি "fruit" দিয়ে পরিবর্তন করতে:
sed '/apple/s/apple/fruit/' file.txt4. নির্দিষ্ট লাইন এবং প্যাটার্নের জন্য অপারেশন করা
যেসব লাইন "apple" প্যাটার্নে শুরু হয়, সেখানে "apple" কে "fruit" দিয়ে প্রতিস্থাপন করতে:
sed '/^apple/s/apple/fruit/' file.txtসারাংশ
Sed এর মাধ্যমে addressing ব্যবহার করে আপনি ফাইলের নির্দিষ্ট অংশে অপারেশন করতে পারেন। আপনি লাইন নম্বর, লাইন রেঞ্জ, অথবা প্যাটার্ন ব্যবহার করে যেকোনো নির্দিষ্ট অংশে পরিবর্তন, মুছে ফেলা, বা অন্যান্য অপারেশন চালাতে পারেন। এটি আপনাকে খুবই কাস্টমাইজড এবং নির্দিষ্টভাবে কাজ করার সুযোগ প্রদান করে।
Read more