AWK এ Associative Arrays এবং তাদের ব্যবহার
AWK প্রোগ্রামিং ভাষায় Associative Arrays একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেটা সংগ্রহ ও প্রক্রিয়াকরণকে আরও কার্যকরী এবং সহজ করে তোলে। সাধারণ অ্যারেগুলি সংখ্যাসূচক ইনডেক্স ব্যবহার করে, কিন্তু AWK এর Associative Arrays (অ্যাসোসিয়েটিভ অ্যারে) স্ট্রিং বা টেক্সট ইনডেক্স ব্যবহার করতে পারে, যা ডেটা ম্যাপিং বা কীগুলোর সাথে মান সংরক্ষণের জন্য বিশেষভাবে উপযোগী।
Associative Arrays কি?
Associative Arrays এমন অ্যারে যা ইনডেক্স হিসেবে স্ট্রিং বা টেক্সট ব্যবহার করতে পারে। এর মাধ্যমে আপনি কীগুলোর সাথে মান সংরক্ষণ করতে পারেন এবং সেই কীগুলোর মাধ্যমে মান অ্যাক্সেস করতে পারেন।
সিনট্যাক্স
array_name[key] = value- array_name: অ্যারের নাম।
- key: কীগুলি যা ইনডেক্স হিসেবে ব্যবহৃত হয়।
- value: যে মানটি কীগুলোর সাথে সংরক্ষিত থাকে।
উদাহরণসমূহ
উদাহরণ ১: অ্যাসোসিয়েটিভ অ্যারে ব্যবহার করে ডেটা গণনা
ধরা যাক, একটি ফাইল names.txt আছে, যেখানে প্রতিটি লাইনে নাম রয়েছে। আমরা প্রতিটি নামের উপস্থিতি গণনা করতে চাই।
names.txt এর উদাহরণ:
John
Emily
John
Mark
Sophia
EmilyAWK স্ক্রিপ্ট:
awk '{ count[$1]++ } END { for (name in count) print name, count[name] }' names.txtবর্ণনা:
- প্রতিটি লাইনের নাম
countঅ্যারেতে ইনডেক্স হিসেবে ব্যবহার করা হয়েছে। count[$1]++প্রতিটি নামের সংখ্যা গণনা করে।ENDব্লকে লুপ ব্যবহার করে প্রতিটি নাম এবং তার সংখ্যা প্রিন্ট করা হয়।
আউটপুট:
John 2
Emily 2
Mark 1
Sophia 1উদাহরণ ২: মান পরিবর্তন এবং অ্যারে প্রিন্ট করা
AWK এ Associative Arrays ব্যবহার করে মান যোগ বা পরিবর্তন করা যায়।
awk 'BEGIN {
student_scores["John"] = 85
student_scores["Emily"] = 92
student_scores["Mark"] = 76
student_scores["Mark"] = 80 # মান পরিবর্তন করা
for (student in student_scores) {
print student ": " student_scores[student]
}
}'আউটপুট:
John: 85
Emily: 92
Mark: 80অ্যাসোসিয়েটিভ অ্যারে ব্যবহার করে ডেটা ফিল্টারিং
ধরা যাক, আমাদের কাছে একটি বিক্রয় রিপোর্ট sales.txt ফাইল আছে যেখানে বিক্রেতার নাম এবং বিক্রয়ের সংখ্যা রয়েছে। আমরা চাই প্রতিটি বিক্রেতার মোট বিক্রয় যোগ করতে।
sales.txt এর উদাহরণ:
John 10
Emily 5
John 7
Mark 3
Emily 9AWK স্ক্রিপ্ট:
awk '{ sales[$1] += $2 } END { for (seller in sales) print seller, "Total sales:", sales[seller] }' sales.txtবর্ণনা:
sales[$1] += $2অ্যারেতে প্রথম কলামের নামকে ইনডেক্স হিসেবে ব্যবহার করে এবং দ্বিতীয় কলামের মান যোগ করে।ENDব্লকে প্রতিটি বিক্রেতার নাম এবং তার মোট বিক্রয় প্রিন্ট করা হয়।
আউটপুট:
John Total sales: 17
Emily Total sales: 14
Mark Total sales: 3অ্যাসোসিয়েটিভ অ্যারে থেকে মান মুছে ফেলা
AWK এ delete কিওয়ার্ড ব্যবহার করে অ্যারেতে কোনো ইনডেক্স মুছে ফেলা যায়।
awk 'BEGIN {
scores["John"] = 90
scores["Emily"] = 95
delete scores["John"] # John এর মান মুছে ফেলা
for (name in scores) {
print name, scores[name]
}
}'আউটপুট:
Emily 95সারসংক্ষেপ
AWK এ Associative Arrays ব্যবহার করে কীগুলোর মাধ্যমে ডেটা সংরক্ষণ এবং অ্যাক্সেস করা সম্ভব, যা ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণের সময় অত্যন্ত কার্যকরী। এটি ডেটা গণনা, মান যোগ বা পরিবর্তন, এবং কীগুলোর ভিত্তিতে ডেটা প্রক্রিয়াকরণের কাজকে সহজ করে। Associative Arrays এর ব্যবহার AWK এর শক্তিশালী বৈশিষ্ট্যগুলোর মধ্যে একটি, যা জটিল ডেটা প্রক্রিয়াকরণের কাজকে আরও দ্রুত এবং সহজ করে তোলে।
Read more