AWK একটি শক্তিশালী স্ক্রিপ্টিং ভাষা যা বিভিন্ন ধরনের অপারেটর সমর্থন করে। অপারেটরগুলি ভেরিয়েবল এবং মানের উপর কার্যক্রম সম্পাদন করতে ব্যবহৃত হয়। AWK এ সাধারণত নিম্নলিখিত ধরনের অপারেটর পাওয়া যায়:
১. গণনা অপারেটরস (Arithmetic Operators)
গণনা অপারেটরগুলি গাণিতিক কার্যক্রম সম্পাদনের জন্য ব্যবহৃত হয়। AWK এ উপলব্ধ প্রধান গণনা অপারেটরগুলি হল:
- + (যোগ)
- - (বিয়োগ)
- * (গুণ)
- / (ভাগ)
- % (মডুলাস)
উদাহরণ
awk 'BEGIN { x = 10; y = 5; print x + y }'২. তুলনামূলক অপারেটরস (Comparison Operators)
তুলনামূলক অপারেটরগুলি দুটি মানের মধ্যে তুলনা করতে ব্যবহৃত হয় এবং ফলস্বরূপ একটি বুলিয়ান (সত্য/মিথ্যা) মান প্রদান করে। AWK এ প্রধান তুলনামূলক অপারেটরগুলি হল:
- == (সমান)
- != (সমান নয়)
- < (ছোট)
- > (বড়)
- <= (ছোট বা সমান)
- >= (বড় বা সমান)
উদাহরণ
awk '{ if ($1 > 100) print $1 " is greater than 100" }' filename.txt৩. লজিক্যাল অপারেটরস (Logical Operators)
লজিক্যাল অপারেটরগুলি একটি বা একাধিক শর্তের সাথে কাজ করতে ব্যবহৃত হয়। AWK এ লজিক্যাল অপারেটরগুলি হল:
- && (লজিক্যাল AND)
- || (লজিক্যাল OR)
- ! (নট)
উদাহরণ
awk '{ if ($1 > 50 && $2 < 100) print $1, $2 }' filename.txt৪. অ্যাসাইনমেন্ট অপারেটরস (Assignment Operators)
অ্যাসাইনমেন্ট অপারেটরগুলি ভেরিয়েবলকে একটি নতুন মান দিতে ব্যবহৃত হয়। প্রধান অ্যাসাইনমেন্ট অপারেটর হল:
- = (সমান) – একটি ভেরিয়েবলকে মান সেট করতে।
- += (যোগ এবং অ্যাসাইন) – একটি ভেরিয়েবলে মান যোগ করে সেট করতে।
- -= (বিয়োগ এবং অ্যাসাইন) – একটি ভেরিয়েবলে মান বিয়োগ করে সেট করতে।
- *= (গুণ এবং অ্যাসাইন) – একটি ভেরিয়েবলে গুণফল করে সেট করতে।
- /= (ভাগ এবং অ্যাসাইন) – একটি ভেরিয়েবলে ভাগফল করে সেট করতে।
উদাহরণ
awk 'BEGIN { x = 10; x += 5; print x }' # x এর মান 15 হবে৫. স্ট্রিং অপারেটরস (String Operators)
AWK এ স্ট্রিং অপারেটর সাধারণত স্ট্রিং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। AWK এ স্ট্রিং সংযুক্ত করতে " (ডাবল কোট) ব্যবহার করা হয়।
উদাহরণ
awk 'BEGIN { str1 = "Hello"; str2 = "World"; print str1 " " str2 }'সারসংক্ষেপ
AWK এ অপারেটরগুলি ব্যবহারকারীদের জন্য তথ্য প্রক্রিয়াকরণে বিভিন্ন কার্যক্রম সম্পাদন করতে সহায়ক। গণনা, তুলনা, লজিক্যাল এবং অ্যাসাইনমেন্ট অপারেটরগুলি AWK স্ক্রিপ্টের কার্যকারিতা বাড়ায়, যা ব্যবহারকারীদের তাদের কাজের ফলাফল অর্জন করতে সাহায্য করে। AWK এর অপারেটরগুলির সঠিক ব্যবহার ডেটা বিশ্লেষণে গুরুত্বপূর্ণ ভূমিকা পালন করে।
অ্যারিথমেটিক অপারেটরগুলি প্রোগ্রামিং এবং গণনা করার মৌলিক উপাদান, যা সংখ্যা বা ভগ্নাংশের ওপর বিভিন্ন গণনা সম্পাদন করতে ব্যবহৃত হয়। এখানে আমরা সাধারণ পাঁচটি অ্যারিথমেটিক অপারেটরের আলোচনা করব: যোগ (+), বিয়োগ (−), গুণ (×), ভাগ (÷), এবং মডুলাস (%), এবং তাদের কার্যকারিতা।
1. যোগ (+)
যোগ অপারেটর দুটি বা ততোধিক সংখ্যার যোগফল বের করতে ব্যবহৃত হয়। এটি সাধারণত দুটি সংখ্যা বা দুটি ভেরিয়েবলের যোগফল নির্ধারণ করতে ব্যবহৃত হয়।
উদাহরণ:
a = 10
b = 5
result = a + b # ফলস্বরূপ: 152. বিয়োগ (−)
বিয়োগ অপারেটর দুটি সংখ্যার মধ্যে বিয়োগ করতে ব্যবহৃত হয়। এটি সাধারণত একটি সংখ্যা থেকে আরেকটি সংখ্যা বাদ দিতে ব্যবহৃত হয়।
উদাহরণ:
a = 10
b = 5
result = a - b # ফলস্বরূপ: 53. গুণ (×)
গুণ অপারেটর দুটি সংখ্যার গুণফল বের করতে ব্যবহৃত হয়। এটি সাধারণত দুটি সংখ্যা বা ভেরিয়েবলের গুণফল নির্ধারণ করতে ব্যবহৃত হয়।
উদাহরণ:
a = 10
b = 5
result = a * b # ফলস্বরূপ: 504. ভাগ (÷)
ভাগ অপারেটর একটি সংখ্যা অন্য একটি সংখ্যায় ভাগ করতে ব্যবহৃত হয়। এটি সাধারণত দুটি সংখ্যা বা ভেরিয়েবলের ভাগফল নির্ধারণ করতে ব্যবহৃত হয়।
উদাহরণ:
a = 10
b = 5
result = a / b # ফলস্বরূপ: 2.0নোট: কিছু প্রোগ্রামিং ভাষায় (যেমন Python) ভগ্নাংশ সংখ্যার ফলাফল দেয়, যদি বিভাজকটি পূর্ণসংখ্যা হয়।
5. মডুলাস (%)
মডুলাস অপারেটর একটি সংখ্যা অন্য একটি সংখ্যায় ভাগ করার পর যে অবশিষ্টাংশ থাকে তা বের করতে ব্যবহৃত হয়। এটি বিশেষভাবে সংখ্যার জোড় বা বিজোড় নির্ধারণ করতে ব্যবহৃত হয়।
উদাহরণ:
a = 10
b = 3
result = a % b # ফলস্বরূপ: 1এখানে 10 কে 3 দিয়ে ভাগ করলে অবশিষ্টাংশ 1।
সারসংক্ষেপ
অ্যারিথমেটিক অপারেটরগুলি প্রোগ্রামিংয়ের মৌলিক উপাদান যা গণনা এবং সংখ্যা বিশ্লেষণে ব্যবহৃত হয়। যোগ (+), বিয়োগ (−), গুণ (×), ভাগ (÷), এবং মডুলাস (%) অপারেটরগুলি ব্যবহার করে ব্যবহারকারীরা বিভিন্ন গণনা এবং সংখ্যা বিশ্লেষণের কাজ করতে পারেন। এই অপারেটরগুলির সাহায্যে প্রোগ্রামাররা গণনা সম্পর্কিত জটিল সমস্যাগুলির সমাধান করতে সক্ষম হন।
Relational operators হল সেই অপারেটরগুলি যা দুটি ভ্যালুর মধ্যে সম্পর্ক নির্ধারণ করে। এই অপারেটরগুলি সাধারণত শর্তাবলী এবং লজিক্যাল সিদ্ধান্ত নেওয়ার জন্য ব্যবহৃত হয়। AWK সহ অন্যান্য প্রোগ্রামিং ভাষায়, relational operators গুরুত্বপূর্ণ ভূমিকা পালন করে কারণ তারা বিভিন্ন কন্ডিশন এবং ডেটা তুলনা করার জন্য ব্যবহৃত হয়। এখানে AWK তে সাধারণভাবে ব্যবহৃত relational operators এর একটি তালিকা এবং তাদের ব্যাখ্যা দেওয়া হলো।
1. সমান (==)
== অপারেটরটি দুটি ভ্যালুর সমান কিনা তা যাচাই করে। যদি ভ্যালুগুলি সমান হয়, তবে এটি true ফেরত দেয়, অন্যথায় false।
উদাহরণ:
awk '{ if ($1 == 100) print "Found 100"; }' data.txtএখানে $1 কলামের মান যদি 100 এর সমান হয়, তবে "Found 100" প্রিন্ট হবে।
2. অসমান (!=)
!= অপারেটরটি দুটি ভ্যালুর মধ্যে অসমান কিনা তা যাচাই করে। যদি ভ্যালুগুলি অসমান হয়, তবে এটি true ফেরত দেয়, অন্যথায় false।
উদাহরণ:
awk '{ if ($2 != "pass") print $1 " did not pass"; }' results.txtএখানে $2 কলামের মান যদি "pass" এর সমান না হয়, তবে উক্ত ছাত্রের নাম প্রিন্ট হবে যিনি উত্তীর্ণ হননি।
3. বড় (>)
> অপারেটরটি প্রথম ভ্যালুটি দ্বিতীয় ভ্যালুর চেয়ে বড় কিনা তা যাচাই করে। যদি প্রথম ভ্যালু বড় হয়, তবে এটি true ফেরত দেয়।
উদাহরণ:
awk '{ if ($3 > 50) print $1 " passed"; }' scores.txtএখানে $3 কলামের মান যদি 50 এর বেশি হয়, তবে উক্ত ছাত্রের নাম প্রিন্ট হবে যে পাশ করেছে।
4. ছোট (<)
< অপারেটরটি প্রথম ভ্যালুটি দ্বিতীয় ভ্যালুর চেয়ে ছোট কিনা তা যাচাই করে। যদি প্রথম ভ্যালু ছোট হয়, তবে এটি true ফেরত দেয়।
উদাহরণ:
awk '{ if ($1 < 10) print $1 " is less than 10"; }' numbers.txtএখানে $1 কলামের মান যদি 10 এর চেয়ে কম হয়, তবে সেই মানটি প্রিন্ট হবে।
5. বড় বা সমান (>=)
>= অপারেটরটি প্রথম ভ্যালুটি দ্বিতীয় ভ্যালুর চেয়ে বড় বা সমান কিনা তা যাচাই করে। যদি প্রথম ভ্যালু বড় বা সমান হয়, তবে এটি true ফেরত দেয়।
উদাহরণ:
awk '{ if ($2 >= 60) print $1 " is eligible for scholarship"; }' grades.txtএখানে $2 কলামের মান যদি 60 এর সমান বা বেশি হয়, তবে উক্ত ছাত্রের নাম প্রিন্ট হবে যিনি বৃত্তির জন্য যোগ্য।
6. ছোট বা সমান (<=)
<= অপারেটরটি প্রথম ভ্যালুটি দ্বিতীয় ভ্যালুর চেয়ে ছোট বা সমান কিনা তা যাচাই করে। যদি প্রথম ভ্যালু ছোট বা সমান হয়, তবে এটি true ফেরত দেয়।
উদাহরণ:
awk '{ if ($1 <= 20) print $1 " is less than or equal to 20"; }' values.txtএখানে $1 কলামের মান যদি 20 এর সমান বা কম হয়, তবে সেই মানটি প্রিন্ট হবে।
সারসংক্ষেপ
Relational operators হল একটি প্রোগ্রামিং ভাষার গুরুত্বপূর্ণ উপাদান যা বিভিন্ন মানের মধ্যে সম্পর্ক নির্ধারণ করে। AWK তে এই অপারেটরগুলি বিভিন্ন শর্ত এবং সিদ্ধান্ত গ্রহণে ব্যবহৃত হয়, যা প্রোগ্রামিংয়ের কাজকে আরো কার্যকরী ও সহজ করে তোলে। এই অপারেটরগুলি ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণের ক্ষেত্রে অত্যন্ত প্রয়োজনীয়।
AWK প্রোগ্রামিং ভাষায় লজিক্যাল অপারেটরগুলি বিভিন্ন শর্তকে সংযুক্ত করতে ব্যবহৃত হয়। এই অপারেটরগুলি শর্তগুলোর মধ্যে সম্পর্ক স্থাপন করে এবং শর্তের ফলস্বরূপ প্রোগ্রামের কার্যকলাপ নিয়ন্ত্রণ করে। নিচে AWK এর তিনটি মূল লজিক্যাল অপারেটর এবং তাদের ব্যবহার সম্পর্কে আলোচনা করা হলো:
১. && (Logical AND)
- বর্ণনা:
&&অপারেটর দুটি শর্তের মধ্যে লজিক্যাল AND সম্পর্ক নির্দেশ করে। এটি সত্য (true) হয় যদি উভয় শর্তই সত্য হয়। - ব্যবহার: যখন আপনাকে একাধিক শর্ত পরীক্ষা করতে হয় এবং সমস্ত শর্ত সত্য হতে হবে তখন
&&ব্যবহার করা হয়। উদাহরণ:
awk '$1 > 10 && $2 < 50 {print $0}' filename.txtএখানে, এই কমান্ডটি সেই লাইনগুলি প্রিন্ট করবে যেখানে প্রথম ফিল্ড 10 এর বেশি এবং দ্বিতীয় ফিল্ড 50 এর কম।
২. || (Logical OR)
- বর্ণনা:
||অপারেটর দুটি শর্তের মধ্যে লজিক্যাল OR সম্পর্ক নির্দেশ করে। এটি সত্য (true) হয় যদি অন্তত একটি শর্ত সত্য হয়। - ব্যবহার: যখন আপনাকে একাধিক শর্ত পরীক্ষা করতে হয় এবং যেকোন একটি শর্ত সত্য হলে কার্যক্রম সম্পাদন করতে হয় তখন
||ব্যবহার করা হয়। উদাহরণ:
awk '$1 < 10 || $2 > 50 {print $0}' filename.txtএখানে, এই কমান্ডটি সেই লাইনগুলি প্রিন্ট করবে যেখানে প্রথম ফিল্ড 10 এর কম অথবা দ্বিতীয় ফিল্ড 50 এর বেশি।
৩. ! (Logical NOT)
- বর্ণনা:
!অপারেটর একটি শর্তের বিপরীত ফলাফল নির্দেশ করে। এটি সত্য (true) হবে যদি শর্তটি মিথ্যা (false) হয়। - ব্যবহার: যখন আপনাকে একটি শর্তের উল্টো মান চেক করতে হয় তখন
!ব্যবহার করা হয়। উদাহরণ:
awk '!($1 > 10) {print $0}' filename.txtএখানে, এই কমান্ডটি সেই লাইনগুলি প্রিন্ট করবে যেখানে প্রথম ফিল্ড 10 এর বেশি নয়।
একত্রিত ব্যবহার
লজিক্যাল অপারেটরগুলি একত্রিতভাবে ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ:
awk '($1 < 10 || $2 > 50) && !($3 == "error") {print $0}' filename.txtএখানে, এই কমান্ডটি সেই লাইনগুলি প্রিন্ট করবে যেখানে প্রথম ফিল্ড 10 এর কম অথবা দ্বিতীয় ফিল্ড 50 এর বেশি, এবং তৃতীয় ফিল্ড "error" নয়।
AWK এর এই লজিক্যাল অপারেটরগুলি ডেটা প্রসেসিংয়ে শর্তাবলী গঠনের সময় অত্যন্ত গুরুত্বপূর্ণ। এগুলি ব্যবহার করে আপনি আপনার শর্তগুলির যৌক্তিক সম্পর্ক তৈরি করতে পারেন এবং আপনার প্রোগ্রামের কার্যকারিতা উন্নত করতে পারেন।
AWK তে Assignment Operators এবং Concatenation এর ব্যবহার গুরুত্বপূর্ণ, কারণ এগুলি ডেটা পরিচালনা এবং প্রক্রিয়াকরণে সহায়ক হয়। এখানে এই দুটি ধারণার বিস্তারিত আলোচনা করা হলো।
Assignment Operators
Assignment Operators হল অপারেটরগুলি যা ভেরিয়েবলে মান সংযুক্ত করার জন্য ব্যবহৃত হয়। AWK তে নিম্নলিখিত প্রধান অ্যাসাইনমেন্ট অপারেটরগুলি রয়েছে:
=(Simple Assignment Operator):- এটি একটি ভেরিয়েবলে মান সেট করতে ব্যবহৃত হয়।
উদাহরণ:
awk '{x = $1 + $2; print x}' filename.txt- এখানে
$1এবং$2এর যোগফলxভেরিয়েবলে সংরক্ষিত হয়।
+=(Addition Assignment Operator):- এটি একটি ভেরিয়েবলে পূর্বের মানের সাথে নতুন মান যোগ করতে ব্যবহৃত হয়।
উদাহরণ:
awk '{sum += $1} END {print sum}' filename.txt- এখানে
sumভেরিয়েবলে$1এর মান যোগ করা হচ্ছে।
-=(Subtraction Assignment Operator):- এটি একটি ভেরিয়েবলে পূর্বের মানের থেকে নতুন মান বিয়োগ করতে ব্যবহৃত হয়।
উদাহরণ:
awk '{balance -= $2} END {print balance}' filename.txt
*=(Multiplication Assignment Operator):- এটি একটি ভেরিয়েবলে পূর্বের মানের সাথে নতুন মান গুণ করতে ব্যবহৃত হয়।
উদাহরণ:
awk '{product *= $1} END {print product}' filename.txt
/=(Division Assignment Operator):- এটি একটি ভেরিয়েবলে পূর্বের মানের উপর নতুন মান ভাগ করতে ব্যবহৃত হয়।
উদাহরণ:
awk '{average /= count} END {print average}' filename.txt
Concatenation
Concatenation হল একটি প্রক্রিয়া যেখানে দুটি বা তার বেশি স্ট্রিং বা টেক্সট একত্রিত করা হয়। AWK তে স্ট্রিং কনক্যাটেনেট করার জন্য . (ডট) অপারেটর ব্যবহার করা হয়। এটি সাধারণত একটি স্ট্রিং এর সাথে আরেকটি স্ট্রিং যুক্ত করতে ব্যবহৃত হয়।
উদাহরণ:
স্ট্রিং কনক্যাটেনেশন:
awk '{fullName = $1 "." $2; print fullName}' filename.txtএখানে
$1এবং$2এর মান একত্রিত করেfullNameতৈরি হচ্ছে।বৈশিষ্ট্যযুক্ত স্ট্রিং:
awk '{message = "Hello, " $1 "!"; print message}' filename.txtএখানে
messageভেরিয়েবলটি ব্যবহারকারীর নামের সাথে যুক্ত একটি স্বাগত বার্তা তৈরি করছে।ফরম্যাটেড আউটপুট:
awk '{output = "Record: " $1 ", Age: " $2; print output}' filename.txtএখানে প্রতিটি রেকর্ডের জন্য ফরম্যাটেড আউটপুট তৈরি হচ্ছে।
সারসংক্ষেপ
AWK তে Assignment Operators এবং Concatenation ব্যবহার করা খুবই কার্যকরী। Assignment Operators ব্যবহার করে ব্যবহারকারীরা ভেরিয়েবলে মান সংযুক্ত করতে পারে এবং ভেরিয়েবলগুলোর গাণিতিক অপারেশন পরিচালনা করতে পারে। অন্যদিকে, Concatenation ব্যবহার করে স্ট্রিং বা টেক্সটের বিভিন্ন অংশ একত্রিত করতে পারে। এই দুটি ধারণা AWK স্ক্রিপ্টগুলির কার্যকারিতা এবং নমনীয়তা বাড়ায়, যা ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণের কাজে সহায়ক হয়।
Read more