AWK এ Data Sorting এবং Custom Sort Function
AWK সাধারণত ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়, তবে এতে বিল্ট-ইন sort ফাংশন নেই। তবে, AWK এ আমরা ডেটা সনির্দিষ্টভাবে সাজানোর জন্য কাস্টম ফাংশন তৈরি করতে পারি। এখানে, AWK এ কীভাবে ডেটা সনির্দিষ্টভাবে সাজানো যায় এবং কাস্টম সোর্ট ফাংশন ব্যবহার করা যায় তার উদাহরণ দেওয়া হলো।
সাধারণ ধারণা: AWK এবং Data Sorting
যদিও AWK নিজে থেকেই ডেটা সোর্ট করার জন্য বিল্ট-ইন ফাংশন সরবরাহ করে না, AWK স্ক্রিপ্টের মধ্যে অ্যারে ব্যবহার করে এবং বাইরের কমান্ড যেমন sort ব্যবহার করে ডেটা সনির্দিষ্টভাবে সাজানো যায়।
বাইরের sort কমান্ড ব্যবহার
AWK এর আউটপুট পাইপলাইনের মাধ্যমে sort কমান্ডে পাঠিয়ে সহজেই ডেটা সনির্দিষ্টভাবে সাজানো যায়।
awk '{print $1, $2}' filename.txt | sort -k2,2nএখানে, filename.txt ফাইলের প্রথম এবং দ্বিতীয় কলাম প্রিন্ট করা হয়েছে এবং sort -k2,2n দ্বারা দ্বিতীয় কলাম অনুযায়ী সনির্দিষ্টভাবে সাজানো হয়েছে।
AWK এ Custom Sort Function তৈরি করা
AWK এ কাস্টম সোর্ট ফাংশন তৈরি করতে অ্যারে এবং একটি ফাংশন ব্যবহার করে আমরা নিজেরাই ডেটা সনির্দিষ্টভাবে সাজাতে পারি। নিচে একটি কাস্টম সোর্ট ফাংশনের উদাহরণ দেওয়া হলো।
উদাহরণ: কাস্টম সোর্ট ফাংশন
awk '
function bubble_sort(array, n) {
for (i = 1; i <= n; i++) {
for (j = i + 1; j <= n; j++) {
if (array[i] > array[j]) {
temp = array[i]
array[i] = array[j]
array[j] = temp
}
}
}
}
BEGIN {
# ডেটা অ্যারেতে যোগ করা
data[1] = 42
data[2] = 15
data[3] = 27
data[4] = 33
data[5] = 19
n = 5 # অ্যারের দৈর্ঘ্য
# সোর্ট ফাংশন কল করা
bubble_sort(data, n)
# সনির্দিষ্টভাবে সাজানো ডেটা প্রিন্ট করা
for (i = 1; i <= n; i++) {
print data[i]
}
}
'বর্ণনা:
bubble_sortনামের একটি ফাংশন তৈরি করা হয়েছে, যা বুদ্বুদ সনির্দিষ্ট পদ্ধতি ব্যবহার করে অ্যারেকে সনির্দিষ্টভাবে সাজায়।tempভেরিয়েবল ব্যবহার করে অ্যারের মান অদলবদল করা হয়েছে।BEGINব্লকে অ্যারে তৈরি করা হয়েছে এবং সনির্দিষ্টভাবে সাজানো ডেটা প্রিন্ট করা হয়েছে।
আউটপুট:
15
19
27
33
42কাস্টম সোর্ট ফাংশন ব্যবহার করে ফাইল থেকে ডেটা সনির্দিষ্ট করা
আপনি ফাইল থেকে ডেটা পড়ে এবং অ্যারেতে সংরক্ষণ করে কাস্টম সোর্ট ফাংশন ব্যবহার করতে পারেন।
awk '
function bubble_sort(array, n) {
for (i = 1; i <= n; i++) {
for (j = i + 1; j <= n; j++) {
if (array[i] > array[j]) {
temp = array[i]
array[i] = array[j]
array[j] = temp
}
}
}
}
{
data[NR] = $1 # ফাইলের প্রতিটি লাইনের প্রথম কলাম অ্যারেতে যোগ করা
count = NR
}
END {
bubble_sort(data, count) # সনির্দিষ্ট ফাংশন কল করা
for (i = 1; i <= count; i++) {
print data[i]
}
}
' filename.txtবর্ণনা:
- ফাইল থেকে ডেটা পড়ে
dataঅ্যারেতে সংরক্ষণ করা হয়েছে। ENDব্লকেbubble_sortফাংশন ব্যবহার করে ডেটা সনির্দিষ্টভাবে সাজানো হয়েছে এবং প্রিন্ট করা হয়েছে।
সারসংক্ষেপ
AWK এ ডেটা সনির্দিষ্টভাবে সাজানোর জন্য বিল্ট-ইন ফাংশন না থাকলেও আমরা কাস্টম সোর্ট ফাংশন তৈরি করে ডেটা সনির্দিষ্ট করতে পারি। বাইরের sort কমান্ডের মাধ্যমে সহজভাবে ডেটা সনির্দিষ্ট করা যায়, তবে জটিল কাজের জন্য কাস্টম ফাংশন তৈরি করা প্রয়োজন হতে পারে। AWK এ অ্যারে এবং লজিক্যাল অপারেটর ব্যবহার করে আপনি আপনার নিজের সনির্দিষ্ট ফাংশন তৈরি করতে পারেন যা ডেটা প্রক্রিয়াকরণের ক্ষমতা বাড়ায়।
Read more