Sed (Stream Editor) এর case-insensitive substitution এবং replacement flags খুবই শক্তিশালী টুল হিসেবে ব্যবহৃত হয়। এগুলো আপনাকে টেক্সট ফাইলে প্যাটার্ন খুঁজে এবং প্রতিস্থাপন করতে সাহায্য করে, এবং case-insensitive প্রতিস্থাপন করলে আপনি বড় এবং ছোট হাতের অক্ষর নিয়ে চিন্তা না করেই কাজ করতে পারেন।
Case-Insensitive Substitution
Sed তে case-insensitive substitution করার জন্য I ফ্ল্যাগ ব্যবহার করা হয়। এর মাধ্যমে আপনি প্যাটার্নে বড় হাতের অক্ষর এবং ছোট হাতের অক্ষর আলাদা না করে একটি নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজে এবং প্রতিস্থাপন করতে পারবেন।
Case-Insensitive Substitution এর সিনট্যাক্স:
sed 's/old_text/new_text/I' file.txtএখানে:
s: সার্চ এবং রিপ্লেস অপারেশন নির্দেশ করে।old_text: আপনি যে প্যাটার্নটি খুঁজতে চান।new_text: পুরানো টেক্সটের পরিবর্তে নতুন টেক্সট যা প্রতিস্থাপন হবে।I: case-insensitive অপশন, যা বড় বা ছোট হাতের অক্ষর নিয়ে কোনো পার্থক্য করবে না।
উদাহরণ:
ধরা যাক, file.txt ফাইলে "apple" শব্দটি রয়েছে এবং আপনি এটিকে "fruit" দিয়ে প্রতিস্থাপন করতে চান, কিন্তু আপনি চাইছেন যে এটি "apple", "Apple", "APPLE", বা অন্যান্য কোনো ভিন্ন কেসেও পরিবর্তিত হোক।
ফাইলের কনটেন্ট (file.txt):
apple
Apple
APPLE
bananaকমান্ড:
sed 's/apple/fruit/I' file.txtআউটপুট:
fruit
fruit
fruit
bananaএখানে, I ফ্ল্যাগের কারণে "apple", "Apple", এবং "APPLE" সব ক্ষেত্রেই "fruit" দিয়ে প্রতিস্থাপন করা হয়েছে, যদিও তাদের কেস (বড় বা ছোট হাতের অক্ষর) আলাদা ছিল।
Replacement Flags in Sed
Sed তে replacement flags বা রিপ্লেসমেন্টের জন্য কিছু বিশেষ ফ্ল্যাগ ব্যবহার করা যায়, যা প্রতিস্থাপন বা টেক্সট পরিবর্তনের সময় অতিরিক্ত কার্যকারিতা যোগ করে।
g (global replacement):
gফ্ল্যাগ ব্যবহার করলে একটি লাইনে যতবার প্যাটার্ন মেলে, ততবার প্রতিস্থাপন করা হয়। যদিgনা ব্যবহার করা হয়, তাহলে শুধুমাত্র প্রথম ম্যাচটি প্রতিস্থাপন করা হয়।
উদাহরণ:
sed 's/apple/fruit/g' file.txtযদি
file.txtফাইলে একাধিক "apple" শব্দ থাকে, তবে সব occurrences পরিবর্তিত হবে।p (print matching lines):
pফ্ল্যাগ ব্যবহার করলে শুধু পরিবর্তিত লাইনগুলো প্রদর্শন করা হয়, মূল ফাইলটি পরিবর্তন করা হয় না। এটি সাধারণত-nঅপশনের সঙ্গে ব্যবহৃত হয়।
উদাহরণ:
sed -n 's/apple/fruit/p' file.txtএখানে,
-nঅপশনটি আউটপুট প্রিন্টিং বন্ধ রাখে, এবংpফ্ল্যাগের মাধ্যমে কেবলমাত্র যেগুলো পরিবর্তিত হয়েছে সেগুলো প্রদর্শিত হবে।w (write to file):
wফ্ল্যাগ দিয়ে আপনি Sed দ্বারা করা প্রতিস্থাপন বা পরিবর্তনকে একটি নতুন ফাইলে লেখতে পারেন। এই ফ্ল্যাগের মাধ্যমে আপনি কোনও ফাইলের মধ্যে টেক্সট পরিবর্তন করতে পারেন এবং তা অন্য একটি ফাইলে সেভ করতে পারেন।
উদাহরণ:
sed 's/apple/fruit/gw newfile.txt' file.txtএটি
file.txtফাইলের "apple" শব্দগুলোকে "fruit"-এ পরিবর্তন করবে এবং পরিবর্তিত ফাইলের কন্টেন্টnewfile.txtফাইলে সেভ করবে।& (the matched string):
&ফ্ল্যাগ ব্যবহার করে আপনি মেলা প্যাটার্নটি রিপ্লেসমেন্টে রেফারেন্স হিসেবে ব্যবহার করতে পারেন। এটি "matched string" অর্থাৎ যে অংশটি প্যাটার্নের সাথে মিলেছে, সেটিকে রিপ্লেসমেন্ট অংশে অন্তর্ভুক্ত করতে ব্যবহৃত হয়।
উদাহরণ:
sed 's/apple/& pie/g' file.txtএই কমান্ডটি
file.txtফাইলে "apple" শব্দটির সাথে " pie" যোগ করে, অর্থাৎ "apple" হয়ে যাবে "apple pie"।
সারাংশ
- Case-Insensitive Substitution: Sed এর
Iফ্ল্যাগ ব্যবহার করে আপনি টেক্সট ফাইলে বড় এবং ছোট হাতের অক্ষর নিয়ে চিন্তা না করে প্যাটার্ন খুঁজে প্রতিস্থাপন করতে পারেন। - Replacement Flags: Sed তে বিভিন্ন রিপ্লেসমেন্ট ফ্ল্যাগ যেমন
g,p,w, এবং&ব্যবহার করে আপনি আরও জটিল প্রতিস্থাপন এবং পরিবর্তন করতে পারেন, যেমন গ্লোবাল প্রতিস্থাপন, প্রিন্টিং বা ফাইলে লেখা ইত্যাদি।
Read more