AWK এ কন্ডিশনাল স্টেটমেন্টস ব্যবহার করে শর্ত অনুযায়ী কার্যক্রম সম্পাদন করা হয়। এর মাধ্যমে ব্যবহারকারী বিভিন্ন শর্তের ভিত্তিতে কোডের নির্দিষ্ট অংশ কার্যকর করতে পারেন। AWK এ প্রধান কন্ডিশনাল স্টেটমেন্ট হলো if, else if, এবং else।
১. if স্টেটমেন্ট
if স্টেটমেন্টটি একটি শর্ত পরীক্ষা করে এবং যদি সেই শর্ত সত্য হয় তবে একটি নির্দিষ্ট অ্যাকশন সম্পন্ন করে।
সিনট্যাক্স:
if (condition) {
action;
}উদাহরণ:
awk '{ if ($1 > 50) print $1 " is greater than 50" }' filename.txtএখানে, যদি প্রথম কলামের মান 50 এর বেশি হয়, তাহলে সেই মানটি এবং একটি বার্তা প্রিন্ট হবে।
২. else if স্টেটমেন্ট
else if স্টেটমেন্টটি একটি শর্ত পরীক্ষা করার পর যদি প্রথম শর্ত মিথ্যা হয় তবে একটি দ্বিতীয় শর্ত পরীক্ষা করে।
সিনট্যাক্স:
if (condition1) {
action1;
} else if (condition2) {
action2;
}উদাহরণ:
awk '{
if ($1 > 50)
print $1 " is greater than 50";
else if ($1 == 50)
print $1 " is equal to 50";
else
print $1 " is less than 50";
}' filename.txtএখানে, প্রথম কলামের মান অনুযায়ী তিনটি ভিন্ন অ্যাকশন হতে পারে।
৩. else স্টেটমেন্ট
else স্টেটমেন্টটি if বা else if এর পরে ব্যবহৃত হয় এবং যদি পূর্ববর্তী শর্তগুলি মিথ্যা হয় তবে একটি ডিফল্ট অ্যাকশন সম্পন্ন করে।
সিনট্যাক্স:
if (condition) {
action1;
} else {
action2;
}উদাহরণ:
awk '{
if ($2 < 100)
print $1 " is less than 100";
else
print $1 " is 100 or more";
}' filename.txtএখানে, দ্বিতীয় কলামের মান 100 এর কম হলে একটি বার্তা প্রিন্ট হবে, অন্যথায় অন্য একটি বার্তা প্রিন্ট হবে।
৪. নেস্টেড কন্ডিশনাল স্টেটমেন্টস
AWK এ কন্ডিশনাল স্টেটমেন্টসকে একের ভেতর একNested করা যায়। এটি একটি কন্ডিশনাল ব্লকের মধ্যে অন্য কন্ডিশনাল ব্লক তৈরি করার অনুমতি দেয়।
উদাহরণ:
awk '{
if ($1 > 50) {
if ($2 < 30)
print $1 " is greater than 50 and $2 is less than 30";
else
print $1 " is greater than 50 and $2 is 30 or more";
} else {
print $1 " is 50 or less";
}
}' filename.txtসারসংক্ষেপ
AWK এ কন্ডিশনাল স্টেটমেন্টস ডেটা প্রসেসিংয়ে গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি ব্যবহারকারীদের শর্ত অনুযায়ী বিভিন্ন কার্যক্রম সম্পাদন করার ক্ষমতা প্রদান করে, যা ডেটা বিশ্লেষণ এবং পরিচালনার সময় খুবই কার্যকর। AWK এর কন্ডিশনাল স্টেটমেন্টগুলি লজিক্যাল সিদ্ধান্ত গ্রহণে সহায়ক এবং এটি স্ক্রিপ্টের জটিলতা বাড়ায়।
if, else if, এবং else হল শর্তাধীন বিবৃতির অংশ, যা প্রোগ্রামিং ভাষায় শর্ত অনুযায়ী কোড কার্যকর করার জন্য ব্যবহৃত হয়। এই কাঠামোটি সিদ্ধান্ত গ্রহণ প্রক্রিয়ার উপর ভিত্তি করে কাজ করে, যা একটি নির্দিষ্ট শর্ত পূরণ হলে বা না হলে বিভিন্ন কোড ব্লক কার্যকর করতে সহায়তা করে। নিচে এই শর্তগুলির ব্যবহার এবং উদাহরণগুলি আলোচনা করা হলো।
1. if Statement
if স্টেটমেন্ট ব্যবহার করে আপনি একটি নির্দিষ্ট শর্ত যাচাই করেন। যদি শর্তটি সত্য (true) হয়, তবে if ব্লকের কোড কার্যকর হয়।
সিনট্যাক্স:
if condition:
# কোড ব্লকউদাহরণ:
age = 18
if age >= 18:
print("You are eligible to vote.")এখানে, যদি age 18 অথবা তার বেশি হয়, তাহলে "You are eligible to vote." মুদ্রিত হবে।
2. else if Statement
else if (বা elif Python-এ) ব্যবহৃত হয় যখন আপনার একাধিক শর্ত পরীক্ষা করতে হয়। যদি প্রথম if শর্ত মিথ্যা হয়, তবে else if শর্তটি পরীক্ষা করা হয়।
সিনট্যাক্স:
if condition1:
# কোড ব্লক 1
elif condition2:
# কোড ব্লক 2উদাহরণ:
marks = 75
if marks >= 80:
print("Grade: A")
elif marks >= 60:
print("Grade: B")
else:
print("Grade: C")এখানে, যদি marks 80 অথবা তার বেশি হয়, "Grade: A" দেখানো হবে; যদি 60 অথবা তার বেশি হয়, "Grade: B" দেখানো হবে; অন্যথায় "Grade: C" দেখানো হবে।
3. else Statement
else স্টেটমেন্ট ব্যবহার করে আপনি একটি ডিফল্ট কোড ব্লক নির্ধারণ করেন যা if এবং else if শর্তগুলি মিথ্যা হলে কার্যকর হয়।
সিনট্যাক্স:
if condition1:
# কোড ব্লক 1
elif condition2:
# কোড ব্লক 2
else:
# কোড ব্লক 3উদাহরণ:
temperature = 30
if temperature > 30:
print("It's hot outside.")
elif temperature < 20:
print("It's cold outside.")
else:
print("The weather is moderate.")এখানে, যদি temperature 30 এর বেশি হয়, "It's hot outside." দেখানো হবে; যদি 20 এর কম হয়, "It's cold outside." দেখানো হবে; অন্যথায় "The weather is moderate." দেখানো হবে।
সারসংক্ষেপ
if, else if, এবং else স্টেটমেন্টগুলি শর্তাধীন সিদ্ধান্ত গ্রহণের জন্য ব্যবহৃত হয়। if শর্ত যাচাই করে এবং যদি তা সত্য হয়, কোড ব্লক কার্যকর হয়; else if পরবর্তী শর্তগুলি পরীক্ষা করে এবং else একটি ডিফল্ট কোড ব্লক হিসাবে কাজ করে। এই শর্তগুলি ব্যবহার করে প্রোগ্রামাররা লজিক্যাল সিদ্ধান্ত নিতে পারেন এবং কোডের বিভিন্ন প্রবাহ তৈরি করতে পারেন।
Ternary operator হল একটি সংক্ষিপ্ত শর্তমূলক অপারেটর, যা সাধারণত তিনটি অংশ নিয়ে গঠিত। এটি একটি সংক্ষিপ্তভাবে শর্ত পরীক্ষা করতে ব্যবহৃত হয় এবং এটি সাধারণত ? এবং : চিহ্ন দিয়ে রচনা করা হয়। Ternary operator কে AWK এবং অন্যান্য প্রোগ্রামিং ভাষায় এক লাইনে একটি শর্ত প্রয়োগ করতে ব্যবহার করা যায়।
Ternary Operator এর গঠন
Ternary operator এর সাধারণ সিনট্যাক্স নিম্নরূপ:
condition ? value_if_true : value_if_false- condition: এটি একটি শর্ত যা সত্য (true) বা মিথ্যা (false) হতে পারে।
- value_if_true: যদি শর্তটি সত্য হয়, তবে এই মানটি ফেরত দেওয়া হবে।
- value_if_false: যদি শর্তটি মিথ্যা হয়, তবে এই মানটি ফেরত দেওয়া হবে।
উদাহরণ ব্যবহার
AWK তে Ternary operator ব্যবহার করে শর্ত প্রয়োগের কিছু উদাহরণ নিচে উল্লেখ করা হলো:
1. সংখ্যার পরীক্ষায়
awk '{ result = ($1 >= 50) ? "Pass" : "Fail"; print $1, result; }' scores.txtএখানে, $1 কলামের মান যদি 50 এর সমান বা বেশি হয়, তবে "Pass" প্রিন্ট হবে, অন্যথায় "Fail" প্রিন্ট হবে।
2. গ্রেড নির্ধারণে
awk '{ grade = ($2 >= 90) ? "A" : ($2 >= 80) ? "B" : ($2 >= 70) ? "C" : "D"; print $1, grade; }' grades.txtএখানে, $2 কলামের মানের উপর ভিত্তি করে গ্রেড নির্ধারণ করা হয়েছে। এটি একাধিক শর্ত পরীক্ষা করে A, B, C, বা D নির্ধারণ করে।
3. টেক্সট বিশ্লেষণে
awk '{ status = ($3 == "active") ? "Active User" : "Inactive User"; print $1, status; }' users.txtএখানে, $3 কলামের মান যদি "active" হয়, তবে "Active User" প্রিন্ট হবে, অন্যথায় "Inactive User" প্রিন্ট হবে।
সারসংক্ষেপ
Ternary operator একটি কার্যকরী এবং সংক্ষিপ্ত উপায়ে শর্ত প্রয়োগের জন্য ব্যবহৃত হয়। এটি সাধারণত এক লাইনে শর্ত পরীক্ষা করে এবং ফলাফল ফেরত দেয়, যা কোড লেখার সময় সঙ্কলনের সাপেক্ষে সুবিধা প্রদান করে। AWK তে Ternary operator ব্যবহার করে ব্যবহারকারীরা সহজেই বিভিন্ন শর্ত এবং ফলাফল পরিচালনা করতে পারেন, যা ডেটা প্রক্রিয়াকরণকে আরও কার্যকর করে।
AWK একটি শক্তিশালী টেক্সট প্রসেসিং ভাষা, তবে এটি সরাসরি switch বা case স্টেটমেন্টের সমর্থন করে না, যা কিছু অন্যান্য প্রোগ্রামিং ভাষায় দেখা যায়। তবে, AWK এ একটি কার্যকর উপায়ে if-else স্টেটমেন্ট ব্যবহার করে স্যুইচ কেসের মতো আচরণ তৈরি করা সম্ভব। নিচে AWK এ কিভাবে switch case স্টাইলের লজিক তৈরি করা যায় এবং তার ব্যবহার উল্লেখ করা হলো।
Switch Case এর ধারণা
Switch স্টেটমেন্ট সাধারণত একটি পরিবর্তনশীলের মান পরীক্ষা করে এবং সেই অনুযায়ী বিভিন্ন অ্যাকশন সম্পাদন করে। এটি সাধারণত এইভাবে কাজ করে:
switch (variable) {
case value1:
// code to be executed if variable equals value1
break;
case value2:
// code to be executed if variable equals value2
break;
default:
// code to be executed if variable doesn't match any case
}AWK এ Switch Case এর বিকল্প: If-Else
AWK এ switch স্টেটমেন্টের বিকল্প হিসাবে if-else স্টেটমেন্ট ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ:
awk '{
if ($1 == "A") {
print "Case A"
} else if ($1 == "B") {
print "Case B"
} else if ($1 == "C") {
print "Case C"
} else {
print "Default case"
}
}' filename.txtএখানে, প্রথম কলামের মান অনুযায়ী বিভিন্ন কেস প্রিন্ট হবে।
Switch Case Simulation in AWK
AWK এ switch কেসের মতো আচরণ তৈরি করতে, আমরা if-else স্টেটমেন্টগুলি ব্যবহার করব। নিচে একটি উদাহরণ দেওয়া হলো:
উদাহরণ ১: স্যুইচ কেসের মতো আচরণ
awk '{
switch_value = $1 # প্রথম কলামের মান গ্রহণ
if (switch_value == "A") {
print "You chose A"
} else if (switch_value == "B") {
print "You chose B"
} else if (switch_value == "C") {
print "You chose C"
} else {
print "Invalid choice"
}
}' filename.txtএখানে, $1 (প্রথম কলাম) অনুযায়ী আমরা বিভিন্ন ফলাফল প্রিন্ট করছি।
উদাহরণ ২: ফাংশন ব্যবহার করে স্যুইচ কেস
AWK এ একটি ফাংশন ব্যবহার করে স্যুইচ কেসের মতো আচরণ করা যেতে পারে:
awk 'function switch_case(switch_value) {
if (switch_value == "A") {
return "You chose A"
} else if (switch_value == "B") {
return "You chose B"
} else if (switch_value == "C") {
return "You chose C"
} else {
return "Invalid choice"
}
}
{
print switch_case($1) # প্রথম কলামের মান অনুযায়ী ফলাফল প্রিন্ট
}' filename.txtএখানে, একটি ফাংশন switch_case তৈরি করা হয়েছে যা প্রথম কলামের মান অনুযায়ী ফলাফল প্রদান করে।
সারসংক্ষেপ
AWK সরাসরি switch case স্টেটমেন্ট সমর্থন না করলেও if-else স্টেটমেন্ট ব্যবহার করে স্যুইচ কেসের মতো আচরণ তৈরি করা সম্ভব। AWK এর এই ক্ষমতা ডেটা বিশ্লেষণের কাজকে আরও সহজ এবং কার্যকর করে, বিশেষ করে যখন বিভিন্ন শর্ত অনুযায়ী ডেটার ওপর বিভিন্ন অ্যাকশন প্রয়োগ করতে হয়। AWK এর মাধ্যমে ডেটা প্রসেসিং এবং বিশ্লেষণে কাস্টম লজিক যোগ করতে, এই ধরনের পদ্ধতি খুবই উপকারী।
AWK তে শর্ত ভিত্তিক ডেটা প্রসেসিং একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ব্যবহারকারীদের ডেটা বিশ্লেষণের সময় নির্দিষ্ট শর্তের উপর ভিত্তি করে কার্যকলাপ পরিচালনা করতে সক্ষম করে। এখানে কিছু উদাহরণ দেওয়া হলো যাতে দেখা যায় কীভাবে AWK তে শর্ত ভিত্তিক ডেটা প্রসেসিং করা যায়।
উদাহরণ 1: নির্দিষ্ট কলামে মান পরীক্ষা করা
ধরা যাক, একটি টেক্সট ফাইল data.txt আছে যার সামগ্রী নিচে দেখানো হয়েছে:
Alice 30
Bob 25
Charlie 35
David 28এখন আমরা এমন লাইনে আউটপুট করতে চাই যেখানে দ্বিতীয় কলামের মান 30 এর বেশি:
awk '$2 > 30' data.txtফলাফল:
Charlie 35এখানে $2 > 30 শর্তটি ব্যবহার করে আমরা দ্বিতীয় কলামের মান 30 এর বেশি হলে লাইনের আউটপুট পাচ্ছি।
উদাহরণ 2: একাধিক শর্ত ব্যবহার করা
এখন আমরা শুধুমাত্র 30 এর বেশি বয়সের নাম বের করতে চাই এবং তাদের বয়সের সাথে আউটপুট করতে চাই:
awk '$2 > 30 {print $1, $2}' data.txtফলাফল:
Charlie 35এখানে $2 > 30 শর্তটি সঠিক হলে, আমরা $1 (নাম) এবং $2 (বয়স) প্রিন্ট করছি।
উদাহরণ 3: শর্ত ভিত্তিক গণনা করা
ধরা যাক, আমরা চাই যে মোট বয়স গণনা করি যাদের বয়স 30 এর বেশি:
awk '$2 > 30 {sum += $2} END {print "Total age:", sum}' data.txtফলাফল:
Total age: 35এখানে, $2 > 30 শর্তটি পূরণ হলে, $2 এর মান sum এ যোগ হচ্ছে এবং শেষে মোট বয়স প্রিন্ট হচ্ছে।
উদাহরণ 4: শর্ত অনুযায়ী ফিল্টারিং এবং আউটপুট ফরম্যাট করা
ধরা যাক, আমরা চাই সমস্ত 30 এর নিচের বয়সের মানুষের নাম এবং বয়স প্রিন্ট করতে, এবং আউটপুট ফরম্যাট করতে:
awk '$2 < 30 {print "Name: " $1 ", Age: " $2}' data.txtফলাফল:
Name: Bob, Age: 25
Name: David, Age: 28এখানে, $2 < 30 শর্তের ভিত্তিতে নাম এবং বয়স ফরম্যাট করে প্রিন্ট করা হচ্ছে।
উদাহরণ 5: সুনির্দিষ্ট শব্দ খুঁজে বের করা
ধরা যাক, আমরা টেক্সট ফাইলে "Alice" নামের মানুষের তথ্য বের করতে চাই:
awk '$1 == "Alice"' data.txtফলাফল:
Alice 30এখানে $1 == "Alice" শর্তটি ব্যবহার করে আমরা "Alice" এর তথ্য পেয়েছি।
সারসংক্ষেপ
AWK তে শর্ত ভিত্তিক ডেটা প্রসেসিং একটি শক্তিশালী বৈশিষ্ট্য যা ব্যবহারকারীদের নির্দিষ্ট শর্তের ভিত্তিতে ডেটা বিশ্লেষণ ও প্রক্রিয়াকরণ করতে সক্ষম করে। বিভিন্ন শর্ত ব্যবহার করে বিভিন্নভাবে ডেটা ফিল্টার, গণনা এবং আউটপুট করতে পারা যায়। এই উদাহরণগুলো AWK তে শর্ত ভিত্তিক ডেটা প্রসেসিংয়ের কার্যকারিতা ও নমনীয়তা প্রদর্শন করে।
Read more