AWK এ Text Matching এর জন্য Regular Expressions ব্যবহার
AWK একটি শক্তিশালী টুল যা টেক্সট প্রক্রিয়াকরণ এবং বিশ্লেষণের ক্ষেত্রে বিশেষভাবে কার্যকর। AWK এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল Regular Expressions (RegEx) ব্যবহার করে টেক্সট ম্যাচিং করা। RegEx ব্যবহার করে জটিল টেক্সট প্যাটার্নগুলি সহজেই খুঁজে বের করা যায় এবং তাদের ভিত্তিতে বিভিন্ন কার্যক্রম সম্পাদন করা যায়।
AWK এ Regular Expressions এর সাধারণ ব্যবহার
AWK এর Regular Expressions সাধারণত /pattern/ আকারে ব্যবহার করা হয় এবং এটি প্যাটার্ন ম্যাচ হলে নির্দিষ্ট অ্যাকশন কার্যকর হয়।
উদাহরণসমূহ
উদাহরণ ১: নির্দিষ্ট শব্দ খুঁজে বের করা
ধরা যাক, আমরা একটি ফাইল data.txt এর মধ্যে "error" শব্দটি আছে এমন সব লাইন খুঁজে বের করতে চাই:
awk '/error/ {print $0}' data.txtএখানে, /error/ একটি RegEx প্যাটার্ন যা "error" শব্দ আছে এমন সব লাইন প্রিন্ট করবে।
উদাহরণ ২: নির্দিষ্ট প্যাটার্ন দিয়ে শুরু হওয়া লাইন খোঁজা
awk '/^Start/ {print $0}' data.txtএখানে, /^Start/ প্যাটার্নটি চেক করবে যে কোন লাইন "Start" শব্দ দিয়ে শুরু হয়েছে।
উদাহরণ ৩: নির্দিষ্ট প্যাটার্ন দিয়ে শেষ হওয়া লাইন খোঁজা
awk '/end$/ {print $0}' data.txtএখানে, /end$/ প্যাটার্নটি চেক করবে যে কোন লাইন "end" শব্দ দিয়ে শেষ হয়েছে।
Special Characters এবং তাদের ব্যবহার
AWK এর RegEx এ কিছু বিশেষ চিহ্ন আছে যা বিশেষভাবে টেক্সট ম্যাচিং এর জন্য ব্যবহার করা হয়:
^: লাইনের শুরু নির্দেশ করে।$: লাইনের শেষ নির্দেশ করে।.: যেকোনো একক অক্ষর নির্দেশ করে।*: শূন্য বা একাধিক পুনরাবৃত্তি নির্দেশ করে।+: এক বা একাধিক পুনরাবৃত্তি নির্দেশ করে।[]: ক্যারেক্টারের সেট নির্দেশ করে।|: OR অপারেটর নির্দেশ করে।
উদাহরণ ৪: একাধিক প্যাটার্ন ম্যাচ করা
awk '/(error|fail|warning)/ {print $0}' data.txtএখানে, /(error|fail|warning)/ প্যাটার্নটি চেক করবে যে কোন লাইন "error", "fail", বা "warning" শব্দ ধারণ করে।
উদাহরণ ৫: নির্দিষ্ট সংখ্যক অক্ষর খুঁজে বের করা
awk '/^.{5}$/ {print $0}' data.txtএখানে, /^.{5}$/ প্যাটার্নটি চেক করবে যে কোন লাইন ঠিক ৫টি অক্ষরের সমান।
Advanced Matching: ফিল্ডের সাথে RegEx ব্যবহার
AWK এ, নির্দিষ্ট ফিল্ডে প্যাটার্ন ম্যাচিং করা যায়। উদাহরণস্বরূপ, দ্বিতীয় ফিল্ডে যদি নির্দিষ্ট প্যাটার্ন থাকে, তবে সেই লাইন প্রিন্ট করতে:
awk '$2 ~ /[0-9]{3}/ {print $0}' data.txtএখানে, $2 ~ /[0-9]{3}/ শর্তটি চেক করবে যে দ্বিতীয় ফিল্ডে ৩টি সংখ্যা আছে কিনা।
NOT Matching: প্যাটার্ন বাদ দেওয়া
AWK এ ! অপারেটর ব্যবহার করে প্যাটার্ন বাদ দেওয়া যায়।
awk '!/error/ {print $0}' data.txtএখানে, !/error/ প্যাটার্নটি সেই সব লাইন প্রিন্ট করবে যেখানে "error" শব্দটি নেই।
সারসংক্ষেপ
AWK এ Regular Expressions ব্যবহার করে টেক্সট ম্যাচিং অত্যন্ত সহজ এবং কার্যকর। এটি ব্যবহার করে আপনি বড় ডেটাসেটের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে এবং সেই অনুযায়ী প্রক্রিয়াকরণ করতে পারেন। AWK এর RegEx ক্ষমতা ডেটা বিশ্লেষণকে দ্রুত এবং কার্যকরভাবে সম্পন্ন করতে সহায়তা করে।
Read more