Regular Expressions (রেগুলার এক্সপ্রেশন) হলো একটি বিশেষ ভাষা যা টেক্সট ডেটা খুঁজে বের করার, মেলানোর এবং পরিচালনা করার জন্য ব্যবহৃত হয়। এটি একটি শক্তিশালী টুল, যা বিশেষভাবে টেক্সট ফাইল বা স্ট্রিম থেকে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে এবং সেই প্যাটার্নগুলির সাথে কাজ করতে সাহায্য করে। Sed এবং অন্যান্য টুল যেমন grep, awk, ইত্যাদিতে রেগুলার এক্সপ্রেশন ব্যবহার করা হয়।
রেগুলার এক্সপ্রেশন সাধারণত একটি প্যাটার্ন বা মালিকানাধীন নিয়মের সেট যা নির্দিষ্ট টেক্সট বা ডেটার অংশ খুঁজে বের করতে ব্যবহৃত হয়। রেগুলার এক্সপ্রেশন দ্বারা আপনি টেক্সটের মধ্যে বেশ কিছু শক্তিশালী অনুসন্ধান এবং পরিবর্তন অপারেশন করতে পারেন।
Regular Expressions এর মৌলিক ধারণা
রেগুলার এক্সপ্রেশন সাধারণত কিছু বিশেষ চিহ্ন এবং নিয়মের সংমিশ্রণ যা টেক্সটের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করে। কিছু গুরুত্বপূর্ণ রেগুলার এক্সপ্রেশন চিহ্ন ও তাদের অর্থ নিচে দেওয়া হলো:
1. বেসিক রেগুলার এক্সপ্রেশন চিহ্ন
. (Dot)
. চিহ্নটি যেকোনো একক অক্ষর বা ক্যারেক্টারকে মেলাতে ব্যবহার করা হয়। এটি যেকোনো একটি চরিত্রের সাথে মিলে যাবে।
উদাহরণ:
sed '/c.t/p' file.txtএটি file.txt ফাইলের যেসব লাইনে "c" এবং "t" এর মধ্যে কোনো একটি অক্ষর রয়েছে, সেগুলো প্রদর্শন করবে (যেমন "cat", "cot", "cut" ইত্যাদি)।
* (Asterisk)
* চিহ্নটি তার পূর্ববর্তী চরিত্রের শূন্য বা একাধিক পুনরাবৃত্তি মেলে।
উদাহরণ:
sed '/ca*t/p' file.txtএটি এমন লাইনগুলো প্রদর্শন করবে যেখানে "c" এর পরে "a" এর শূন্য বা একাধিক পুনরাবৃত্তি থাকবে, যেমন "ct", "cat", "caat" ইত্যাদি।
^ (Caret)
^ চিহ্নটি লাইনটির শুরুতে একটি প্যাটার্ন খুঁজে বের করতে ব্যবহৃত হয়।
উদাহরণ:
sed '/^cat/p' file.txtএটি file.txt ফাইলের প্রথমে "cat" দিয়ে শুরু হওয়া সমস্ত লাইনগুলো প্রদর্শন করবে।
$ (Dollar Sign)
$ চিহ্নটি লাইনটির শেষের প্যাটার্ন খুঁজে বের করতে ব্যবহৃত হয়।
উদাহরণ:
sed '/cat$/p' file.txtএটি file.txt ফাইলের যেসব লাইনে "cat" শব্দটি লাইনের শেষে রয়েছে, সেগুলো প্রদর্শন করবে।
[] (Square Brackets)
[] চিহ্নটি একটি নির্দিষ্ট সেটের মধ্যে থাকা যেকোনো একক অক্ষরের সাথে মিলিত হবে। এর মধ্যে যে কোন এক বা একাধিক চরিত্র হতে পারে।
উদাহরণ:
sed '/c[aeiou]t/p' file.txtএটি file.txt ফাইলের যেসব লাইনে "c" এবং "t" এর মধ্যে যেকোনো একক ভক্যাল অক্ষর রয়েছে, সেগুলো প্রদর্শন করবে (যেমন "cat", "cot", "cut" ইত্যাদি)।
[^] (Caret Inside Square Brackets)
[^] চিহ্নটি একটি প্যাটার্নে থাকা অক্ষর বাদ দিয়ে অন্য কিছু খুঁজে বের করতে ব্যবহৃত হয়। এর মধ্যে যে কোনো অক্ষর বাদ দিয়ে বাকি সব কিছু মেলে।
উদাহরণ:
sed '/c[^aeiou]t/p' file.txtএটি file.txt ফাইলের যেসব লাইনে "c" এবং "t" এর মধ্যে কোনো ভক্যাল অক্ষর ছাড়া অন্য কোনো অক্ষর রয়েছে, সেগুলো প্রদর্শন করবে (যেমন "c1t", "cxt" ইত্যাদি)।
2. বিশেষ চরিত্রসমূহ
\ (Backslash)
ব্যাকসল্যাশ \ চিহ্নটি বিশেষ চরিত্রকে এড়াতে ব্যবহৃত হয়। যেমন, যদি আপনি বিশেষ কোনো চরিত্র যেমন . বা * খুঁজতে চান, তাহলে সেই চরিত্রের আগে ব্যাকসল্যাশ দিতে হবে।
উদাহরণ:
sed '/\./p' file.txtএটি file.txt ফাইলের যেসব লাইনে "." চরিত্রটি রয়েছে, সেগুলো প্রদর্শন করবে।
{} (Curly Braces)
{} চিহ্নটি এক বা একাধিক পুনরাবৃত্তি সঠিকভাবে চিহ্নিত করতে ব্যবহৃত হয়। এটি কোনো শব্দ বা চরিত্র কতবার পুনরাবৃত্তি হতে পারে তা নির্দেশ করে।
উদাহরণ:
sed '/a\{3\}/p' file.txtএটি file.txt ফাইলের যেসব লাইনে "a" চরিত্রটি ৩ বার পুনরাবৃত্তি হয়েছে, সেগুলো প্রদর্শন করবে (যেমন "aaa")।
() (Parentheses)
() চিহ্নটি একটি গ্রুপ তৈরি করতে ব্যবহৃত হয়, যেটি নির্দিষ্ট অংশের মধ্যে মিল খোঁজার জন্য ব্যবহৃত হয়।
উদাহরণ:
sed '/\(cat\|dog\)/p' file.txtএটি file.txt ফাইলের যেসব লাইনে "cat" অথবা "dog" শব্দ রয়েছে, সেগুলো প্রদর্শন করবে।
3. Sed এ Regular Expressions এর ব্যবহার
Sed এর মাধ্যমে আপনি রেগুলার এক্সপ্রেশন ব্যবহার করে টেক্সটের মধ্যে মেলানো এবং পরিবর্তন করতে পারেন। এটি রেগুলার এক্সপ্রেশন সাপোর্ট করে, যা আপনাকে জটিল প্যাটার্ন এবং অনুসন্ধান করতে সাহায্য করে।
উদাহরণ 1:
sed '/^[aeiou]/p' file.txtএটি file.txt ফাইলের সমস্ত লাইন প্রদর্শন করবে যা ভক্যাল অক্ষরে শুরু হয়।
উদাহরণ 2:
sed 's/\([0-9]\{3\}\)/[\1]/g' file.txtএটি file.txt ফাইলের তিনটি ডিজিটের গ্রুপকে ব্র্যাকেট দিয়ে ঘিরে ফেলবে।
সারাংশ
রেগুলার এক্সপ্রেশন একটি অত্যন্ত শক্তিশালী টুল যা আপনাকে টেক্সট থেকে নির্দিষ্ট প্যাটার্ন খুঁজে বের করার এবং সেই প্যাটার্নের উপর কাজ করার সুযোগ দেয়। Sed-এ রেগুলার এক্সপ্রেশন ব্যবহার করে আপনি সহজে টেক্সট ফাইলের মধ্যে পরিবর্তন করতে পারেন, যেমন টেক্সট অনুসন্ধান, পরিবর্তন এবং মুছে ফেলা।
Read more