Complex Pattern Matching এবং তার উদাহরণ
AWK প্রোগ্রামিং ভাষায় Complex Pattern Matching ব্যবহার করে আপনি জটিল প্যাটার্নের ভিত্তিতে ডেটা ফিল্টার এবং প্রক্রিয়া করতে পারেন। Complex Pattern Matching সাধারণত Regular Expressions, শর্তাবলী, এবং লজিক্যাল অপারেটরগুলির সমন্বয়ে তৈরি করা হয়। এটি বিশেষত বৃহৎ ডেটাসেটের মধ্যে নির্দিষ্ট ধরনের তথ্য খুঁজে বের করার ক্ষেত্রে কার্যকরী।
Complex Pattern Matching এর উপাদান
AWK এ Complex Pattern Matching তৈরি করতে বিভিন্ন উপাদান ব্যবহার করা হয়, যেমন:
- Regular Expressions: নির্দিষ্ট প্যাটার্ন খুঁজে বের করার জন্য।
- লজিক্যাল অপারেটর: যেমন
&&,||,!– একাধিক শর্ত যুক্ত করতে। - শর্তাবলী: ফিল্ডের মানের ভিত্তিতে শর্ত যুক্ত করতে।
উদাহরণ এবং ব্যবহার
উদাহরণ ১: একাধিক শর্ত নিয়ে Complex Pattern Matching
awk '$1 ~ /^[A-Z]/ && $2 > 100 {print $0}' filename.txtএখানে:
$1 ~ /^[A-Z]/শর্তটি চেক করে যে প্রথম কলামের মান বড় হাতের অক্ষরে শুরু হয়েছে কিনা।$2 > 100শর্তটি চেক করে যে দ্বিতীয় কলামের মান ১০০ এর বেশি কিনা।&&লজিক্যাল অপারেটর ব্যবহার করে দুইটি শর্তকে একত্রিত করা হয়েছে।
এই প্যাটার্নটি ম্যাচ হলে পুরো লাইন প্রিন্ট করা হবে।
উদাহরণ ২: OR অপারেটর ব্যবহার করে Complex Pattern Matching
awk '$1 == "Error" || $3 ~ /critical/ {print $1, $3}' filename.txtএখানে:
$1 == "Error"শর্তটি চেক করে যে প্রথম কলাম "Error" কিনা।$3 ~ /critical/শর্তটি চেক করে যে তৃতীয় কলামে "critical" শব্দটি রয়েছে কিনা।||লজিক্যাল অপারেটর ব্যবহার করে শর্তগুলির মধ্যে OR সম্পর্ক স্থাপন করা হয়েছে।
এই কমান্ডটি "Error" বা "critical" শব্দ যুক্ত লাইনগুলি প্রিন্ট করবে।
উদাহরণ ৩: NOT অপারেটর ব্যবহার করে Complex Pattern Matching
awk '!($2 ~ /skip/) && $4 > 50 {print $0}' filename.txtএখানে:
!($2 ~ /skip/)শর্তটি চেক করে যে দ্বিতীয় কলামে "skip" শব্দটি নেই।$4 > 50শর্তটি চেক করে যে চতুর্থ কলামের মান ৫০ এর বেশি।&&অপারেটর ব্যবহার করে দুটি শর্ত যুক্ত করা হয়েছে।
যদি দ্বিতীয় কলামে "skip" না থাকে এবং চতুর্থ কলামের মান ৫০ এর বেশি হয়, তবে সেই লাইনটি প্রিন্ট হবে।
উদাহরণ ৪: একাধিক প্যাটার্ন এবং কন্ডিশনাল অ্যাকশন
awk '/^START/ || /END$/ {print "Boundary:", $0} $3 ~ /^[0-9]+$/ {print "Number:", $3}' filename.txtএখানে:
/^START/ || /END$/অংশটি এমন লাইনগুলিকে খুঁজে বের করবে যা "START" শব্দ দিয়ে শুরু হয় বা "END" শব্দ দিয়ে শেষ হয় এবং প্রিন্ট করবে "Boundary" সহ।$3 ~ /^[0-9]+$/অংশটি তৃতীয় কলামে শুধুমাত্র সংখ্যা আছে কিনা চেক করবে এবং সেই মান "Number" সহ প্রিন্ট করবে।
সারসংক্ষেপ
AWK এ Complex Pattern Matching ব্যবহার করে জটিল ডেটা ফিল্টারিং এবং প্রসেসিং সহজে করা যায়। Regular Expressions, লজিক্যাল অপারেটর এবং শর্তাবলী ব্যবহার করে AWK প্রোগ্রামে উন্নত প্যাটার্ন ম্যাচিং তৈরি করা সম্ভব। এর ফলে, বড় ডেটাসেটের মধ্যে নির্দিষ্ট তথ্য খুঁজে বের করা, ফিল্টার করা এবং প্রক্রিয়া করা আরও কার্যকর হয়।
Read more