AWK এ Data Aggregation এবং Summarization
AWK একটি অত্যন্ত কার্যকর টুল যা বড় ডেটাসেট থেকে ডেটা অ্যাগ্রিগেশন (সংগ্রহ) এবং সামারাইজেশন (সারসংক্ষেপ) করতে ব্যবহৃত হয়। বিভিন্ন ধরনের ডেটা বিশ্লেষণ, যেমন গড় নির্ণয়, সর্বোচ্চ এবং সর্বনিম্ন মান বের করা, মোট যোগফল ইত্যাদি, AWK ব্যবহার করে করা যায়। নিচে ডেটা অ্যাগ্রিগেশন এবং সামারাইজেশনের কয়েকটি উদাহরণ এবং কৌশল দেখানো হলো।
সাধারণ ডেটা অ্যাগ্রিগেশন পদ্ধতি
AWK এ ডেটা অ্যাগ্রিগেশন করার জন্য সাধারণত লুপ এবং অ্যারে ব্যবহার করা হয়। BEGIN, END, এবং মূল স্ক্রিপ্ট ব্লকে বিভিন্ন কার্যক্রম সম্পন্ন করা হয়।
উদাহরণসমূহ
উদাহরণ ১: মোট যোগফল নির্ণয়
awk '{ sum += $2 } END { print "Total:", sum }' data.txtবর্ণনা:
- প্রতিটি লাইনের দ্বিতীয় কলামের মান
sumভেরিয়েবলে যোগ করা হয়েছে। ENDব্লকে মোট যোগফল প্রিন্ট করা হয়েছে।
উদাহরণ ২: গড় নির্ণয়
awk '{ sum += $2; count++ } END { if (count > 0) print "Average:", sum / count }' data.txtবর্ণনা:
- প্রতিটি লাইনের দ্বিতীয় কলামের মান
sumএ যোগ করা হয়েছে এবংcountদিয়ে মোট লাইন সংখ্যা গণনা করা হয়েছে। ENDব্লকে গড় বের করার জন্যsum / countব্যবহার করা হয়েছে।
উদাহরণ ৩: সর্বোচ্চ এবং সর্বনিম্ন মান নির্ণয়
awk 'NR == 1 { max = min = $2 }
{
if ($2 > max) max = $2
if ($2 < min) min = $2
}
END {
print "Max value:", max
print "Min value:", min
}' data.txtবর্ণনা:
- প্রথম লাইনে,
maxএবংminকে প্রথম মান হিসাবে সেট করা হয়েছে। - প্রতিটি লাইনে মান পরীক্ষা করে,
maxএবংminআপডেট করা হয়েছে। ENDব্লকে সর্বোচ্চ এবং সর্বনিম্ন মান প্রিন্ট করা হয়েছে।
গ্রুপ অনুযায়ী ডেটা সামারাইজেশন
AWK এ অ্যারে ব্যবহার করে গ্রুপ ভিত্তিক ডেটা অ্যাগ্রিগেশন করা যায়।
উদাহরণ ৪: বিক্রেতা অনুযায়ী মোট বিক্রয়
awk '{ sales[$1] += $3 } END { for (seller in sales) print seller, "Total sales:", sales[seller] }' sales_data.txtবর্ণনা:
- প্রতিটি লাইনের প্রথম কলামকে (বিক্রেতার নাম) ইনডেক্স হিসেবে ব্যবহার করে, তৃতীয় কলামের (বিক্রয় সংখ্যা) মান যোগ করা হয়েছে।
ENDব্লকে প্রতিটি বিক্রেতার নাম এবং তার মোট বিক্রয় প্রিন্ট করা হয়েছে।
ডেটা ফিল্টারিং সহ সামারাইজেশন
AWK এ শর্ত যোগ করে ডেটা সামারাইজেশন আরও কার্যকরী করা যায়।
উদাহরণ ৫: নির্দিষ্ট শর্তে ডেটা যোগফল বের করা
awk '$2 > 50 { sum += $3 } END { print "Total sales for items over 50 units:", sum }' sales_data.txtবর্ণনা:
- দ্বিতীয় কলামের মান ৫০ এর বেশি হলে তৃতীয় কলামের মান
sumএ যোগ করা হয়েছে। ENDব্লকে মোট যোগফল প্রিন্ট করা হয়েছে।
কাস্টম ফাংশন ব্যবহার করে সামারাইজেশন
AWK এ কাস্টম ফাংশন ব্যবহার করে সামারাইজেশনকে আরও সহজ এবং পুনঃব্যবহারযোগ্য করা যায়।
awk '
function calculate_average(total, count) {
return (count > 0) ? total / count : 0
}
{
sum += $2
count++
}
END {
avg = calculate_average(sum, count)
print "Total:", sum
print "Average:", avg
}
' data.txtবর্ণনা:
calculate_averageনামে একটি কাস্টম ফাংশন তৈরি করা হয়েছে যা গড় বের করে।ENDব্লকেsumএবংavgপ্রিন্ট করা হয়েছে।
সারসংক্ষেপ
AWK ব্যবহার করে ডেটা অ্যাগ্রিগেশন এবং সামারাইজেশন সহজে এবং কার্যকরভাবে করা যায়। লুপ, অ্যারে এবং কাস্টম ফাংশন ব্যবহার করে AWK জটিল ডেটা প্রক্রিয়াকরণ এবং বিশ্লেষণের কাজ দ্রুত করতে সক্ষম। ডেটা বিশ্লেষণ এবং সামারাইজেশনের ক্ষেত্রে AWK একটি গুরুত্বপূর্ণ টুল যা প্রোগ্রামারদের ডেটা বিশ্লেষণকে সহজ এবং দ্রুত করতে সহায়তা করে।
Read more