AWK একটি শক্তিশালী স্ক্রিপ্টিং ভাষা যা প্রক্রিয়াকরণের জন্য ফাংশনগুলিকে সমর্থন করে। ফাংশনগুলি কোডের পুনরায় ব্যবহারযোগ্য ব্লক, যা একটি নির্দিষ্ট কার্যক্রম সম্পাদন করে। AWK এ ফাংশনগুলি ব্যবহার করে জটিল কাজগুলোকে সহজে এবং কার্যকরীভাবে সম্পন্ন করা যায়।
ফাংশনের মৌলিক কাঠামো
একটি ফাংশন সংজ্ঞায়িত করার জন্য নিম্নলিখিত সিনট্যাক্স ব্যবহৃত হয়:
function function_name(parameter1, parameter2, ...) {
action;
}এখানে:
- function_name: ফাংশনের নাম।
- parameter: ফাংশনে প্রেরিত ইনপুট মান।
- action: ফাংশনের মধ্যে কার্যক্রম।
ফাংশন সংজ্ঞায়ন এবং ব্যবহার
উদাহরণ ১: সাধারণ ফাংশন
function square(x) {
return x * x;
}
BEGIN {
num = 5;
result = square(num);
print "Square of " num " is " result;
}এখানে, square নামক একটি ফাংশন তৈরি করা হয়েছে যা একটি সংখ্যা প্রাপ্ত করে এবং তার বর্গফল প্রদান করে।
উদাহরণ ২: একাধিক প্যারামিটার সহ ফাংশন
function add(a, b) {
return a + b;
}
BEGIN {
num1 = 10;
num2 = 20;
sum = add(num1, num2);
print "Sum of " num1 " and " num2 " is " sum;
}এই উদাহরণে, add ফাংশন দুটি প্যারামিটার নেয় এবং তাদের যোগফল প্রদান করে।
বিল্ট-ইন ফাংশন
AWK কিছু বিল্ট-ইন ফাংশনও সরবরাহ করে, যা প্রায়ই ব্যবহৃত হয়। এর মধ্যে কয়েকটি উল্লেখযোগ্য ফাংশন হল:
length(string): একটি স্ট্রিংয়ের দৈর্ঘ্য প্রদান করে।
awk 'BEGIN { str = "Hello"; print length(str); }'substr(string, start, length): একটি স্ট্রিং থেকে একটি সাবস্ট্রিং প্রদান করে।
awk 'BEGIN { str = "Hello World"; print substr(str, 1, 5); }'toupper(string): একটি স্ট্রিংকে বড় হাতের অক্ষরে রূপান্তর করে।
awk 'BEGIN { str = "hello"; print toupper(str); }'tolower(string): একটি স্ট্রিংকে ছোট হাতের অক্ষরে রূপান্তর করে।
awk 'BEGIN { str = "HELLO"; print tolower(str); }'
ফাংশন ব্যবহার করা
ফাংশনগুলি AWK স্ক্রিপ্টে বিভিন্ন কার্যক্রম সম্পাদন করতে ব্যবহার করা হয়, যা কোডের পুনরাবৃত্তি কমায় এবং স্ক্রিপ্টের বোঝাপড়া সহজ করে।
উদাহরণ: ফাইলের গড় বের করা
function average(sum, count) {
return sum / count;
}
{
total += $1;
count++;
}
END {
avg = average(total, count);
print "Average is " avg;
}এখানে, average ফাংশনটি মোট এবং গণনার ভিত্তিতে গড় নির্ধারণ করে।
সারসংক্ষেপ
AWK এ ফাংশনগুলি কোডের পুনরায় ব্যবহারযোগ্য ব্লক, যা স্ক্রিপ্টিং কার্যক্রমকে সহজতর করে। ব্যবহারকারীরা কাস্টম ফাংশন তৈরি করে তাদের প্রয়োজন অনুসারে বিভিন্ন কার্যক্রম সম্পাদন করতে পারেন, এবং AWK এর বিল্ট-ইন ফাংশনগুলি সাধারণ কাজগুলোকে দ্রুত এবং কার্যকরভাবে সম্পন্ন করতে সহায়তা করে। ফাংশনগুলি AWK স্ক্রিপ্টের কার্যকারিতা এবং বোঝাপড়া বাড়ানোর জন্য একটি গুরুত্বপূর্ণ উপাদান।
প্রোগ্রামিং ভাষাগুলিতে, Built-in Functions হল প্রি-ডিফাইন্ড ফাংশনগুলি, যা বিভিন্ন কাজ সম্পাদনের জন্য ব্যবহৃত হয়। AWK এবং অন্যান্য প্রোগ্রামিং ভাষায়, কিছু সাধারণ Built-in Functions এর মধ্যে length(), substr(), index(), split(), এবং sprintf() অন্তর্ভুক্ত। নিচে এই ফাংশনগুলোর ব্যবহার এবং উদাহরণ দেওয়া হলো।
1. length()
length() ফাংশন একটি স্ট্রিংয়ের দৈর্ঘ্য (অর্থাৎ, এর মধ্যে মোট অক্ষরের সংখ্যা) ফেরত দেয়।
সিনট্যাক্স:
length(string)উদাহরণ:
awk 'BEGIN {
str = "Hello, World!";
print length(str); # ফলস্বরূপ: 13
}'এখানে, "Hello, World!" স্ট্রিংটির দৈর্ঘ্য 13।
2. substr()
substr() ফাংশন একটি স্ট্রিংয়ের নির্দিষ্ট অংশ বের করার জন্য ব্যবহৃত হয়। এটি স্ট্রিংয়ের শুরু থেকে একটি নির্দিষ্ট অবস্থান এবং দৈর্ঘ্য অনুসারে সাবস্ট্রিং ফেরত দেয়।
সিনট্যাক্স:
substr(string, start, length)উদাহরণ:
awk 'BEGIN {
str = "Hello, World!";
print substr(str, 1, 5); # ফলস্বরূপ: Hello
}'এখানে, substr ফাংশন 1 থেকে 5 অক্ষরের অংশ বের করে, যা "Hello"।
3. index()
index() ফাংশন একটি স্ট্রিংয়ের মধ্যে একটি সাবস্ট্রিংয়ের অবস্থান নির্ধারণ করে। এটি প্রথম occurrence-এর অবস্থান ফেরত দেয় এবং যদি সাবস্ট্রিংটি না পাওয়া যায় তবে 0 ফেরত দেয়।
সিনট্যাক্স:
index(string, substring)উদাহরণ:
awk 'BEGIN {
str = "Hello, World!";
print index(str, "World"); # ফলস্বরূপ: 8
}'এখানে, "World" শব্দটির শুরু 8 নম্বর অবস্থানে।
4. split()
split() ফাংশন একটি স্ট্রিংকে একটি নির্দিষ্ট delimiter (পদার্থ) দিয়ে বিভক্ত করে এবং একটি অ্যারেতে ফলাফল সংরক্ষণ করে।
সিনট্যাক্স:
split(string, array, delimiter)উদাহরণ:
awk 'BEGIN {
str = "apple,banana,cherry";
split(str, fruits, ",");
print fruits[1]; # ফলস্বরূপ: apple
print fruits[2]; # ফলস্বরূপ: banana
print fruits[3]; # ফলস্বরূপ: cherry
}'এখানে, split ফাংশন কমা (,) দ্বারা str স্ট্রিংকে তিনটি অংশে বিভক্ত করে।
5. sprintf()
sprintf() ফাংশন একটি ফরম্যাটেড স্ট্রিং তৈরি করে, যা printf এর মতো তবে এটি স্ট্যান্ডার্ড আউটপুটে মুদ্রিত হয় না। এটি একটি নতুন স্ট্রিং ফেরত দেয়।
সিনট্যাক্স:
sprintf(format, arguments)উদাহরণ:
awk 'BEGIN {
num = 3.14159;
result = sprintf("The value of pi is approximately: %.2f", num);
print result; # ফলস্বরূপ: The value of pi is approximately: 3.14
}'এখানে, sprintf ফাংশন num এর মানকে নির্দিষ্ট ফরম্যাটে একটি স্ট্রিংয়ে রূপান্তর করে।
সারসংক্ষেপ
Built-in Functions, যেমন length(), substr(), index(), split(), এবং sprintf() প্রোগ্রামিং ভাষায় স্ট্রিং প্রসেসিংয়ের জন্য অত্যন্ত কার্যকরী। এগুলি ডেটার মধ্যে বিভিন্ন অপারেশন সম্পাদনে সাহায্য করে, যা কোডিংকে আরও সহজ ও কার্যকর করে। এই ফাংশনগুলির মাধ্যমে ব্যবহারকারীরা দ্রুত এবং কার্যকরভাবে স্ট্রিং ডেটার সাথে কাজ করতে সক্ষম হন।
AWK তে User-Defined Functions (ব্যবহারকারী-সংজ্ঞায়িত ফাংশন) ব্যবহারকারীদের তাদের নিজস্ব ফাংশন তৈরি করার অনুমতি দেয়। এই ফাংশনগুলি একটি নির্দিষ্ট কাজ সম্পাদনের জন্য কোডের একটি ব্লককে encapsulate করে, যা পুনরায় ব্যবহারযোগ্য এবং আরও সংগঠিত কোড লেখার অনুমতি দেয়। ফাংশনগুলি বিভিন্ন ইনপুট গ্রহণ করতে পারে এবং একটি ফলাফল ফেরত দিতে পারে।
User-Defined Functions এর গঠন
AWK তে একটি User-Defined Function তৈরি করার জন্য, আপনাকে প্রথমে function কীওয়ার্ড ব্যবহার করতে হবে। এর সাধারণ সিনট্যাক্স নিম্নরূপ:
function function_name(parameter1, parameter2, ...) {
# ফাংশনের কোড ব্লক
return value
}- function_name: ফাংশনের নাম।
- parameter: ফাংশনের ইনপুট আর্গুমেন্ট।
- return value: ফাংশনটি প্রক্রিয়া করার পরে ফেরত দেওয়া মান।
User-Defined Functions এর উদাহরণ
উদাহরণ 1: একটি সাধারণ ফাংশন তৈরি করা
awk 'function square(x) {
return x * x
}
{
print "Square of", $1, "is", square($1)
}' data.txtএখানে square নামের একটি ফাংশন তৈরি করা হয়েছে যা একটি সংখ্যার বর্গ বের করে। ফাংশনটি কল করার পর $1 এর বর্গ প্রিন্ট হয়।
উদাহরণ 2: একাধিক প্যারামিটার সহ ফাংশন
awk 'function add(a, b) {
return a + b
}
{
result = add($1, $2)
print "Sum of", $1, "and", $2, "is", result
}' data.txtএখানে add নামের একটি ফাংশন তৈরি করা হয়েছে যা দুটি সংখ্যার যোগফল বের করে। $1 এবং $2 এর যোগফল প্রিন্ট হয়।
উদাহরণ 3: ফাংশন ব্যবহার করে ডেটা বিশ্লেষণ
awk 'function average(total, count) {
return total / count
}
{
sum += $1
count++
}
END {
print "Average:", average(sum, count)
}' data.txtএখানে average নামের একটি ফাংশন তৈরি করা হয়েছে, যা একটি সংখ্যা এবং গণনা গ্রহণ করে এবং তাদের গড় বের করে। END ব্লকে ফাংশনটি কল করে গড় প্রিন্ট করা হয়।
ফাংশনের সুবিধা
- কোড পুনরায় ব্যবহারযোগ্যতা: ফাংশনগুলি একই কোডের পুনরাবৃত্তি বন্ধ করতে সাহায্য করে, যা কোডকে আরও পরিষ্কার এবং সংক্ষিপ্ত করে।
- সহজ ডিবাগিং: ফাংশনগুলির মাধ্যমে কোডের একটি নির্দিষ্ট অংশ আলাদা করা যায়, যা ত্রুটি খোঁজার প্রক্রিয়াকে সহজ করে।
- ভাল সংগঠন: ফাংশনগুলি কোডকে একটি সংগঠিত এবং মডুলার আকারে তৈরি করে, যা ডেভেলপমেন্ট এবং রক্ষণাবেক্ষণকে সহজ করে।
সারসংক্ষেপ
User-Defined Functions AWK তে একটি শক্তিশালী বৈশিষ্ট্য, যা ব্যবহারকারীদের তাদের নিজস্ব ফাংশন তৈরি করার সুযোগ দেয়। এই ফাংশনগুলি ডেটা প্রক্রিয়াকরণ এবং বিশ্লেষণের সময় কোডের পুনরায় ব্যবহারযোগ্যতা এবং সংগঠন বাড়ায়। ফাংশন ব্যবহার করে কোডের কার্যকারিতা বৃদ্ধি পায় এবং এটি ডেভেলপারদের জন্য আরও কার্যকরী এবং সহজে রক্ষণাবেক্ষণযোগ্য কোড লেখার সুযোগ দেয়।
AWK এ Function Declaration এবং Call এর উদাহরণ
AWK প্রোগ্রামিং ভাষায় ফাংশনগুলি কোডের পুনঃব্যবহারযোগ্য টুকরো হিসেবে কাজ করে। একটি ফাংশন সাধারণত একটি নির্দিষ্ট কাজ সম্পাদন করে এবং প্রোগ্রামের যে কোনও স্থানে আহ্বান করা যায়। এখানে আমরা AWK তে ফাংশন ঘোষণা (declaration) এবং কল (call) করার উদাহরণ দেখাবো।
১. Function Declaration
AWK এ একটি ফাংশন ঘোষণা করার জন্য function কীওয়ার্ড ব্যবহার করা হয়। ফাংশনটির নাম, প্যারামিটার (যদি থাকে), এবং ফাংশনের কার্যকরী অংশ {} মধ্যে থাকে।
উদাহরণ: ফাংশন ঘোষণা
awk 'function add(a, b) {
return a + b # দুটি সংখ্যার যোগফল প্রদান করে
}
{
result = add($1, $2) # প্রথম এবং দ্বিতীয় কলামের মান নিয়ে ফাংশন কল
print "Sum:", result
}' filename.txtএখানে, add নামক একটি ফাংশন তৈরি করা হয়েছে যা দুটি সংখ্যা গ্রহণ করে এবং তাদের যোগফল প্রদান করে।
২. Function Call
ফাংশন কল করার সময়, ফাংশনের নামের সাথে প্যারামিটারগুলি পাঠানো হয়। ফাংশন কল করার জন্য ফাংশনের নামের পরে প্যারেন্টেসিস ব্যবহার করতে হয়।
উদাহরণ: ফাংশন কল
awk 'function square(x) {
return x * x # সংখ্যার বর্গ প্রদান করে
}
{
value = square($1) # প্রথম কলামের মান নিয়ে ফাংশন কল
print "Square of", $1, "is:", value
}' filename.txtএখানে, square নামক একটি ফাংশন তৈরি করা হয়েছে যা একটি সংখ্যা গ্রহণ করে এবং তার বর্গ প্রদান করে। পরে এই ফাংশনটি প্রতিটি লাইনের প্রথম কলামের মান নিয়ে আহ্বান করা হয়েছে।
৩. Multiple Parameters
ফাংশন একাধিক প্যারামিটার গ্রহণ করতে পারে।
উদাহরণ: একাধিক প্যারামিটার ব্যবহার করে ফাংশন
awk 'function multiply(a, b) {
return a * b # দুটি সংখ্যার গুণফল প্রদান করে
}
{
product = multiply($1, $2) # প্রথম এবং দ্বিতীয় কলামের মান নিয়ে ফাংশন কল
print "Product:", product
}' filename.txtএখানে, multiply নামক একটি ফাংশন দুটি সংখ্যার গুণফল প্রদান করে এবং এটি প্রথম এবং দ্বিতীয় কলামের মান নিয়ে আহ্বান করা হয়েছে।
৪. Function with Default Values
AWK এ ডিফল্ট মান সহ ফাংশন ঘোষণা করা সম্ভব।
উদাহরণ: ডিফল্ট মান সহ ফাংশন
awk 'function greet(name, greeting = "Hello") {
return greeting ", " name # স্বাগতম বার্তা প্রদান করে
}
{
print greet($1) # প্রথম কলামের নাম নিয়ে ফাংশন কল
}' filename.txtএখানে, greet ফাংশনটিতে একটি ডিফল্ট greeting মান রয়েছে। যদি greeting প্রদান না করা হয়, তাহলে এটি "Hello" ব্যবহার করবে।
সারসংক্ষেপ
AWK তে ফাংশনগুলি কোডের পুনঃব্যবহারযোগ্য টুকরো হিসেবে কাজ করে, যা বিভিন্ন স্থানে আহ্বান করা যায়। ফাংশন ঘোষণা করতে function কীওয়ার্ড ব্যবহার করা হয় এবং ফাংশন কল করার সময় ফাংশনের নাম এবং প্যারামিটার পাঠানো হয়। এই বৈশিষ্ট্যগুলি AWK এ ডেটা প্রক্রিয়াকরণকে আরও কার্যকর এবং সংগঠিত করতে সাহায্য করে।
AWK এ Function Parameters এবং Return Values
AWK একটি শক্তিশালী প্রোগ্রামিং ভাষা যা ফাংশন ব্যবহারের মাধ্যমে কোডের পুনঃব্যবহারযোগ্যতা এবং সংগঠনের সুবিধা প্রদান করে। ফাংশনে প্যারামিটার এবং রিটার্ন ভ্যালু ব্যবহার করে আমরা ডেটা প্রসেসিংয়ের কাজকে আরও কার্যকরী করতে পারি। নিচে AWK তে ফাংশন প্যারামিটার এবং রিটার্ন ভ্যালু ব্যবহার করার পদ্ধতি আলোচনা করা হলো।
ফাংশন প্যারামিটার
ফাংশন প্যারামিটার হল ফাংশনের মধ্যে ডেটা পাঠানোর উপায়। AWK তে একটি ফাংশন ঘোষণা করার সময়, প্যারামিটারগুলি সঠিকভাবে ব্যবহার করা যেতে পারে।
উদাহরণ: ফাংশন প্যারামিটার ব্যবহার করে
awk 'function add(a, b) {
return a + b
}
{
sum = add($1, $2) # প্রথম এবং দ্বিতীয় কলাম যোগ করে
print "Sum of " $1 " and " $2 " is: " sum
}' filename.txtএখানে, add নামক একটি ফাংশন রয়েছে যা দুটি প্যারামিটার a এবং b গ্রহণ করে এবং তাদের যোগফল রিটার্ন করে। মূল ব্লকে, $1 এবং $2 কে প্যারামিটার হিসেবে পাঠানো হয়েছে।
রিটার্ন ভ্যালু
AWK তে একটি ফাংশন রিটার্ন ভ্যালু ব্যবহার করে ফাংশনের ফলাফল ফেরত দেয়। return কিওয়ার্ডের মাধ্যমে এটি সম্পন্ন হয়।
উদাহরণ: রিটার্ন ভ্যালু ব্যবহার করে
awk 'function square(x) {
return x * x
}
{
result = square($1) # প্রথম কলামের মানের বর্গফল বের করে
print "Square of " $1 " is: " result
}' filename.txtএখানে, square নামক ফাংশনটি একটি প্যারামিটার x গ্রহণ করে এবং তার বর্গফল রিটার্ন করে। মূল ব্লকে, প্রথম কলামের মানকে ফাংশনে পাঠানো হয়েছে এবং ফলাফল প্রিন্ট করা হয়েছে।
একত্রিত উদাহরণ
নিচে একটি উদাহরণ দেওয়া হলো যেখানে প্যারামিটার এবং রিটার্ন ভ্যালু উভয়ই ব্যবহার করা হয়েছে:
awk 'function average(a, b) {
return (a + b) / 2
}
{
avg = average($1, $2) # প্রথম এবং দ্বিতীয় কলামের গড় বের করে
print "Average of " $1 " and " $2 " is: " avg
}' filename.txtএখানে, average ফাংশনটি দুটি প্যারামিটার a এবং b গ্রহণ করে এবং তাদের গড় রিটার্ন করে।
সারসংক্ষেপ
AWK তে ফাংশন প্যারামিটার এবং রিটার্ন ভ্যালু ব্যবহার করে কোডের পুনঃব্যবহারযোগ্যতা এবং পরিষ্কারতা বৃদ্ধি পায়। ফাংশনের মাধ্যমে আমরা বিভিন্ন কার্যক্রমকে বিভক্ত করতে এবং বিশেষ কাজগুলোর জন্য নির্দিষ্ট কোড লিখতে পারি। এটি ডেটা বিশ্লেষণের সময় কার্যকারিতা এবং দক্ষতা বাড়াতে সহায়ক। AWK এ ফাংশনগুলোর সঠিক ব্যবহার ডেটা প্রক্রিয়াকরণের কাজকে আরও সহজ এবং দ্রুত করে তোলে।
Read more