AWK স্ক্রিপ্ট ফাইল তৈরি (Creating AWK Script Files)
AWK স্ক্রিপ্ট ফাইল তৈরি করা ব্যবহারকারীদের জন্য জটিল কাজকে সহজ করতে সহায়ক। এটি একটি স্বতন্ত্র ফাইল হিসেবে সংরক্ষিত হয় যা AWK কমান্ড এবং স্ক্রিপ্ট ধারণ করে। AWK স্ক্রিপ্ট ফাইল ব্যবহার করে আপনি বড় এবং পুনরায় ব্যবহারযোগ্য কোড লিখতে পারেন।
AWK স্ক্রিপ্ট ফাইলের কাঠামো
একটি AWK স্ক্রিপ্ট ফাইল সাধারণত .awk এক্সটেনশনে সংরক্ষিত হয়। AWK স্ক্রিপ্ট ফাইলের মধ্যে প্রোগ্রাম শুরু করার জন্য কিছু সাধারণ অংশ থাকে:
#!/usr/bin/awk -f
# BEGIN ব্লক (ঐচ্ছিক)
BEGIN {
print "Processing started"
}
# প্রধান প্রোগ্রাম ব্লক
{
print $1, $2
}
# END ব্লক (ঐচ্ছিক)
END {
print "Processing completed"
}স্ক্রিপ্ট ফাইল তৈরি করা
- একটি টেক্সট এডিটর (যেমন
nano,vim, বাgedit) ব্যবহার করে একটি নতুন ফাইল তৈরি করুন। - ফাইলের শুরুতে
#!/usr/bin/awk -fশেবাং লাইনটি যোগ করুন, যা স্ক্রিপ্টটি AWK ইন্টারপ্রেটারের মাধ্যমে চালানোর নির্দেশ দেয়। - AWK কমান্ডগুলো লিখুন এবং ফাইলটি
.awkএক্সটেনশনে সংরক্ষণ করুন।
উদাহরণ:
nano myscript.awkএরপর ফাইলের মধ্যে নিচের কোড লিখুন:
#!/usr/bin/awk -f
BEGIN {
print "Start processing the file"
}
{
print "First Field:", $1, "Second Field:", $2
}
END {
print "Processing finished"
}ফাইলটি সংরক্ষণ করুন এবং বন্ধ করুন।
স্ক্রিপ্ট ফাইল চালানো
AWK স্ক্রিপ্ট ফাইল চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:
awk -f myscript.awk inputfile.txtএখানে, -f নির্দেশনা স্ক্রিপ্ট ফাইল থেকে AWK কমান্ড পড়ে এবং inputfile.txt হল ইনপুট ফাইল যা স্ক্রিপ্টটি প্রক্রিয়া করবে।
স্ক্রিপ্ট ফাইলকে এক্সিকিউটেবল করা
AWK স্ক্রিপ্ট ফাইলকে এক্সিকিউটেবল করা যায়, যাতে সরাসরি স্ক্রিপ্ট চালানো সম্ভব হয়। এক্সিকিউটেবল করার জন্য নিচের কমান্ডটি ব্যবহার করুন:
chmod +x myscript.awkএরপর, স্ক্রিপ্টটি সরাসরি চালানো যায়:
./myscript.awk inputfile.txtস্ক্রিপ্ট ফাইলের ব্যবহার
AWK স্ক্রিপ্ট ফাইল ব্যবহার করে আপনি জটিল ডেটা প্রক্রিয়াকরণ এবং বিশ্লেষণ করতে পারেন। এর কিছু উদাহরণ:
- বড় টেক্সট ফাইল থেকে নির্দিষ্ট ডেটা বের করা।
- লগ ফাইল বিশ্লেষণ এবং রিপোর্ট তৈরি করা।
- বিভিন্ন ফরম্যাটে আউটপুট প্রিন্ট করা।
সারসংক্ষেপ
AWK স্ক্রিপ্ট ফাইল তৈরি এবং ব্যবহার করা ডেটা প্রক্রিয়াকরণের জন্য একটি সহজ ও কার্যকর উপায়। এটি পুনরায় ব্যবহারযোগ্য এবং জটিল কাজ সহজে সম্পাদন করতে সহায়তা করে। AWK স্ক্রিপ্ট ফাইল ব্যবহারকারীদের দ্রুত এবং কার্যকরীভাবে ডেটা বিশ্লেষণ করতে সহায়তা করে।
AWK স্ক্রিপ্ট ফাইল তৈরি এবং তার ব্যবহার
AWK স্ক্রিপ্ট ফাইল হল এমন একটি ফাইল যেখানে AWK কমান্ড এবং ফাংশনগুলো সংরক্ষণ করা থাকে, যা সহজে বড় আকারের ডেটা প্রসেসিং করতে ব্যবহৃত হয়। এই পদ্ধতিতে, একটি AWK প্রোগ্রাম একাধিক লাইনে লেখা এবং পুনর্ব্যবহৃত করা যায়।
AWK স্ক্রিপ্ট ফাইল তৈরি এবং তা চালানোর জন্য নিচের ধাপগুলো অনুসরণ করতে পারেন।
ধাপ 1: AWK স্ক্রিপ্ট ফাইল তৈরি করা
একটি AWK স্ক্রিপ্ট ফাইল সাধারণত .awk এক্সটেনশনের সাথে সংরক্ষণ করা হয়। এতে AWK কোড লেখা হয়, যা ইনপুট ফাইল বা ডেটার ওপর প্রক্রিয়া চালায়।
উদাহরণ:
ধরা যাক, একটি AWK স্ক্রিপ্ট ফাইল myscript.awk নামে তৈরি করা হয়েছে।
myscript.awk:
# myscript.awk
# BEGIN ব্লক: স্ক্রিপ্ট শুরু করার আগে চালিত হয়
BEGIN {
print "Starting AWK Script"
}
# মূল প্রক্রিয়াকরণ ব্লক: প্রতিটি রেকর্ডে চালিত হয়
{
print "Processing line:", $0
print "First field:", $1
}
# END ব্লক: স্ক্রিপ্টের শেষে চালিত হয়
END {
print "AWK Script Finished"
}ধাপ 2: AWK স্ক্রিপ্ট ফাইল চালানো
AWK স্ক্রিপ্ট চালানোর জন্য কমান্ড লাইন ব্যবহার করতে হবে। AWK স্ক্রিপ্ট ফাইল চালানোর সাধারণ সিনট্যাক্স:
awk -f myscript.awk inputfile.txtএখানে:
-fফ্ল্যাগটি AWK-কে বলে যে এটি একটি ফাইল থেকে স্ক্রিপ্ট পড়তে হবে।myscript.awkহল AWK স্ক্রিপ্ট ফাইলের নাম।inputfile.txtহল সেই ইনপুট ফাইল যা প্রক্রিয়া করা হবে।
উদাহরণ:
awk -f myscript.awk data.txtএই কমান্ডটি data.txt ইনপুট ফাইল প্রক্রিয়াকরণের জন্য myscript.awk স্ক্রিপ্ট চালাবে এবং আউটপুট প্রদর্শন করবে।
স্ক্রিপ্ট ফাইলের ব্যবহার
AWK স্ক্রিপ্ট ফাইল ব্যবহারের কিছু সুবিধা:
- বড় কোডের ম্যানেজমেন্ট: AWK স্ক্রিপ্ট ফাইল বড় এবং জটিল প্রোগ্রাম সংরক্ষণ করতে সহজ।
- পুনর্ব্যবহারযোগ্য কোড: AWK স্ক্রিপ্ট ফাইল সহজেই পুনর্ব্যবহার করা যায় বিভিন্ন প্রজেক্টে।
- সহজ ডিবাগিং: একাধিক লাইনে কোড লেখা সহজে পড়া এবং ডিবাগ করা সম্ভব।
উদাহরণ: কলাম গাণিতিক বিশ্লেষণ
sumfields.awk:
# sumfields.awk
BEGIN {
sum = 0
}
# দ্বিতীয় কলামের যোগফল নির্ণয়
{
sum += $2
}
END {
print "Total sum of second field:", sum
}চালানোর কমান্ড:
awk -f sumfields.awk data.txtএই স্ক্রিপ্ট data.txt ফাইলের দ্বিতীয় কলামের মানগুলোর যোগফল বের করবে।
স্ক্রিপ্ট ফাইলে কমেন্ট যোগ করা
AWK স্ক্রিপ্ট ফাইলে কমেন্ট যোগ করার জন্য # চিহ্ন ব্যবহার করা হয়। এটি AWK স্ক্রিপ্ট পড়ার সময় ব্যবহারকারীকে বুঝতে সহায়তা করে কোন অংশে কী কাজ করা হচ্ছে।
সারসংক্ষেপ
AWK স্ক্রিপ্ট ফাইল তৈরি এবং তার ব্যবহার বড় আকারের ডেটা প্রক্রিয়াকরণের জন্য অত্যন্ত কার্যকরী। এটি কোডকে আরো পড়ার যোগ্য, পুনর্ব্যবহারযোগ্য এবং সহজ ডিবাগিং করতে সহায়ক করে। AWK স্ক্রিপ্ট ফাইল ব্যবহার করে প্রোগ্রামাররা সহজেই ডেটা ফিল্টার, প্রক্রিয়াকরণ এবং বিশ্লেষণ করতে সক্ষম হন।
Command Line থেকে AWK স্ক্রিপ্ট চালানো
AWK স্ক্রিপ্ট কমান্ড লাইন থেকে বিভিন্ন উপায়ে চালানো যায়। AWK এর সরলতা এবং নমনীয়তা এটি কমান্ড লাইনে সহজে ব্যবহারযোগ্য করে তোলে। এখানে AWK স্ক্রিপ্ট চালানোর বিভিন্ন পদ্ধতি এবং এর ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে।
পদ্ধতি 1: সরাসরি কমান্ড লাইনে AWK কমান্ড লিখে চালানো
AWK কমান্ড সরাসরি কমান্ড লাইনে লেখা এবং চালানো যায়। এটি ছোট এবং দ্রুত কাজের জন্য উপযোগী।
উদাহরণ:
awk '{ print $1, $2 }' data.txtএই কমান্ডটি data.txt ফাইলের প্রথম এবং দ্বিতীয় কলাম প্রিন্ট করবে।
ব্যাখ্যা:
{ print $1, $2 }: AWK প্রোগ্রাম যা প্রথম এবং দ্বিতীয় কলাম প্রিন্ট করে।data.txt: ইনপুট ফাইল।
পদ্ধতি 2: কমান্ড লাইনে -F অপশন ব্যবহার করে ফিল্ড সেপারেটর নির্ধারণ করা
AWK এ -F ফ্ল্যাগ ব্যবহার করে ফিল্ড সেপারেটর নির্ধারণ করা যায়।
উদাহরণ:
awk -F"," '{ print $1, $3 }' data.csvএটি data.csv ফাইল থেকে প্রথম এবং তৃতীয় কলাম প্রিন্ট করবে, যেখানে কমা (,) ফিল্ড সেপারেটর হিসেবে ব্যবহার করা হয়েছে।
পদ্ধতি 3: একাধিক কমান্ড একত্রে ব্যবহার করা
AWK এ একাধিক কমান্ড একত্রে ব্যবহার করা যায়, যা জটিল কাজের জন্য প্রয়োজন হতে পারে।
উদাহরণ:
awk '{ sum += $3 } END { print "Total:", sum }' data.txtএটি data.txt ফাইলের তৃতীয় কলামের যোগফল প্রিন্ট করবে।
ব্যাখ্যা:
sum += $3: প্রতিটি লাইনের তৃতীয় কলামের মান যোগ করা।END { print "Total:", sum }: সব লাইনের যোগফল শেষে প্রিন্ট করা।
পদ্ধতি 4: একটি আলাদা AWK স্ক্রিপ্ট ফাইল থেকে চালানো
AWK স্ক্রিপ্ট বড় এবং জটিল হলে, একটি আলাদা ফাইল তৈরি করে সেটি চালানো ভালো।
স্ক্রিপ্ট ফাইল তৈরি:
script.awk নামে একটি ফাইল তৈরি করুন:
# script.awk
{
print "Name:", $1, "Score:", $2
}স্ক্রিপ্ট চালানো:
awk -f script.awk data.txtব্যাখ্যা:
-f script.awk: AWK ফাইলটি ব্যবহার করে স্ক্রিপ্ট চালায়।data.txt: ইনপুট ফাইল।
পদ্ধতি 5: শেল স্ক্রিপ্টের মধ্যে AWK ব্যবহার করা
AWK স্ক্রিপ্ট শেল স্ক্রিপ্টের অংশ হিসেবেও ব্যবহার করা যায়।
উদাহরণ:
#!/bin/bash
awk '{ if ($2 > 50) print $1, "Passed"; else print $1, "Failed"; }' scores.txtব্যাখ্যা:
- শেল স্ক্রিপ্ট
scores.txtফাইলের দ্বিতীয় কলামের উপর ভিত্তি করে পাস/ফেল নির্ধারণ করে।
সারসংক্ষেপ
AWK কমান্ড লাইন থেকে চালানো খুবই সহজ এবং কার্যকরী। এটি সরাসরি কমান্ড লাইনে, একটি নির্দিষ্ট স্ক্রিপ্ট ফাইল থেকে বা শেল স্ক্রিপ্টের অংশ হিসেবে ব্যবহার করা যায়। AWK এর এই বৈশিষ্ট্যগুলি ব্যবহারকারীদের ডেটা প্রক্রিয়াকরণ ও বিশ্লেষণে সুবিধা প্রদান করে এবং দ্রুত ফলাফল অর্জন করতে সহায়তা করে।
AWK স্ক্রিপ্টের আর্গুমেন্ট গ্রহণ এবং প্রসেসিং
AWK স্ক্রিপ্টে আর্গুমেন্ট গ্রহণ এবং প্রক্রিয়াকরণ করার ক্ষমতা রয়েছে, যা স্ক্রিপ্টের কার্যকারিতা এবং ব্যবহারযোগ্যতা বৃদ্ধি করে। এটি ব্যবহারকারীদের স্ক্রিপ্ট চালানোর সময় কাস্টম ইনপুট প্রদান করতে সহায়তা করে।
১. কমান্ড লাইন আর্গুমেন্ট
AWK কমান্ড লাইন আর্গুমেন্ট গ্রহণ করতে পারে এবং স্ক্রিপ্টে সেই আর্গুমেন্টগুলি ব্যবহার করা যায়। AWK এ ARGC এবং ARGV নামের বিল্ট-ইন ভেরিয়েবল রয়েছে, যা আর্গুমেন্ট সংখ্যা এবং আর্গুমেন্ট লিস্ট নির্দেশ করে।
ARGC: মোট আর্গুমেন্টের সংখ্যা নির্দেশ করে।ARGV: আর্গুমেন্টের অ্যারের মধ্যে প্রতিটি আর্গুমেন্ট রাখে।
২. উদাহরণ: আর্গুমেন্ট প্রিন্ট করা
awk 'BEGIN {
for (i = 0; i < ARGC; i++) {
print "Argument", i, ":", ARGV[i]
}
}'এখানে, ARGV অ্যারের প্রতিটি আর্গুমেন্ট প্রিন্ট হবে এবং ARGC মোট আর্গুমেন্টের সংখ্যা নির্দেশ করবে। যদি এই স্ক্রিপ্ট awk -f script.awk file1 file2 কমান্ডের মাধ্যমে চালানো হয়, তাহলে আউটপুট হবে:
Argument 0 : awk
Argument 1 : script.awk
Argument 2 : file1
Argument 3 : file2৩. কাস্টম আর্গুমেন্ট ব্যবহার
AWK স্ক্রিপ্টের মধ্যে -v অপশন ব্যবহার করে কাস্টম ভেরিয়েবল তৈরি এবং সেট করা যায়, যা স্ক্রিপ্টে ব্যবহার করা যাবে।
উদাহরণ: কাস্টম ভেরিয়েবল ব্যবহার
awk -v name="John" 'BEGIN {print "Hello, " name}'এখানে, -v অপশন ব্যবহার করে name নামক ভেরিয়েবল সেট করা হয়েছে এবং BEGIN ব্লকে সেটি প্রিন্ট করা হয়েছে।
৪. আর্গুমেন্ট ফাইল ফিল্টার করা
AWK স্ক্রিপ্টে আর্গুমেন্টের মাধ্যমে ফাইল ফিল্টার করাও সম্ভব।
উদাহরণ: নির্দিষ্ট আর্গুমেন্ট দ্বারা ফাইল ফিল্টার করা
awk 'FILENAME == ARGV[1] {print "Processing:", FILENAME; print $0}' file1.txt file2.txtএখানে, FILENAME == ARGV[1] শর্তের মাধ্যমে প্রথম ফাইল file1.txt প্রক্রিয়া করা হবে এবং প্রতিটি লাইন প্রিন্ট হবে।
৫. আর্গুমেন্ট ম্যানিপুলেশন
AWK স্ক্রিপ্টে কমান্ড লাইন আর্গুমেন্ট সরানো বা পরিবর্তন করা সম্ভব।
উদাহরণ: আর্গুমেন্ট মুছে ফেলা
awk 'BEGIN {delete ARGV[1]} {print $0}' file1.txt file2.txtএখানে, delete ARGV[1] ব্যবহার করে প্রথম আর্গুমেন্ট মুছে ফেলা হয়েছে। এর ফলে, AWK শুধু file2.txt প্রক্রিয়া করবে।
সারসংক্ষেপ
AWK স্ক্রিপ্টে আর্গুমেন্ট গ্রহণ এবং প্রসেসিং করা স্ক্রিপ্টকে আরও কার্যকর এবং ডায়নামিক করে তোলে। ARGC এবং ARGV ব্যবহার করে আর্গুমেন্ট সংখ্যা এবং মান নিয়ন্ত্রণ করা যায়। -v অপশন ব্যবহার করে কাস্টম ভেরিয়েবল তৈরি এবং সেট করা যায়। AWK স্ক্রিপ্টে এই ক্ষমতা স্ক্রিপ্টের ফ্লেক্সিবিলিটি এবং ব্যবহারযোগ্যতা বাড়ায়।
Complex Data Processing এর জন্য AWK Script Creation
AWK একটি অত্যন্ত শক্তিশালী এবং বহুমুখী টুল যা জটিল ডেটা প্রসেসিংয়ের কাজ সহজে সম্পন্ন করতে পারে। জটিল ডেটা প্রসেসিংয়ের জন্য AWK এর শক্তি পুরোপুরি ব্যবহার করা যেতে পারে, যেমন একাধিক শর্ত প্রয়োগ করা, ফাংশন ব্যবহার করা, লুপিং এবং ডেটা ফিল্টারিং ইত্যাদি। নিচে জটিল ডেটা প্রসেসিংয়ের জন্য একটি উদাহরণসহ স্ক্রিপ্ট তৈরি করার পদ্ধতি দেখানো হলো।
উদাহরণ: জটিল ডেটা প্রসেসিং স্ক্রিপ্ট
ধরা যাক, আমাদের একটি sales_data.txt ফাইল রয়েছে, যেখানে প্রতিটি লাইনে রয়েছে: বিক্রেতার নাম, পণ্যের নাম, বিক্রয় সংখ্যা, এবং বিক্রয় মূল্য। ফাইলটি দেখতে এমন:
John,ProductA,10,15.50
Emily,ProductB,5,20.00
John,ProductC,7,18.00
Sophia,ProductA,12,15.50
Emily,ProductA,9,15.50আমরা চাই:
- প্রতিটি বিক্রেতার মোট বিক্রয়ের সংখ্যা গণনা করা।
- কোন বিক্রেতা কত টাকা বিক্রি করেছেন তা গণনা করা।
স্ক্রিপ্ট তৈরি
awk -F, '
# BEGIN ব্লকে শিরোনাম প্রিন্ট করা হচ্ছে
BEGIN {
print "Sales Report"
print "---------------------"
}
# প্রতিটি লাইন প্রক্রিয়াকরণ
{
salesperson = $1 # বিক্রেতার নাম
sales_count = $3 # বিক্রয় সংখ্যা
sales_value = $3 * $4 # বিক্রয় মূল্য
# মোট বিক্রয়ের সংখ্যা যোগ করা
total_sales[salesperson] += sales_count
# মোট বিক্রয় মূল্য যোগ করা
total_revenue[salesperson] += sales_value
}
# END ব্লকে ফলাফল প্রিন্ট করা হচ্ছে
END {
print "Name | Total Sales | Total Revenue"
print "---------------------------------------"
for (person in total_sales) {
printf "%-8s | %-11d | $%-12.2f\n", person, total_sales[person], total_revenue[person]
}
}' sales_data.txtস্ক্রিপ্টের ব্যাখ্যা
-F,অপশন: কমা দিয়ে আলাদা করা ডেটা প্রক্রিয়াকরণের জন্য ফিল্ড সেপারেটর নির্ধারণ করা হয়েছে।BEGINব্লক: স্ক্রিপ্টের শুরুতে একবার চালিত হয় এবং শিরোনাম প্রিন্ট করে।total_sales[salesperson]এবংtotal_revenue[salesperson]: অ্যারে ব্যবহার করে প্রতিটি বিক্রেতার মোট বিক্রয় সংখ্যা এবং মোট আয় সংরক্ষণ করা হয়েছে।ENDব্লক: স্ক্রিপ্টের শেষে চালিত হয় এবং সব বিক্রেতার জন্য আউটপুট প্রিন্ট করে।
আউটপুট
Sales Report
---------------------
Name | Total Sales | Total Revenue
---------------------------------------
John | 17 | $324.50
Emily | 14 | $310.50
Sophia | 12 | $186.00জটিল প্রক্রিয়াকরণ যুক্ত করা
এই স্ক্রিপ্টে আপনি আরও শর্ত এবং ফিল্টারিং যোগ করতে পারেন, যেমন:
- শুধুমাত্র নির্দিষ্ট পণ্য ফিল্টার করা।
- বিক্রয় সংখ্যা ১০ এর উপরে হলে প্রিন্ট করা।
- বিভিন্ন ফাংশন যোগ করা, যেমন গড় বিক্রয় নির্ণয়।
ফিল্টার যোগ করা
awk -F, '$3 > 10 { print $1 " has sold more than 10 units of " $2 }' sales_data.txtসারসংক্ষেপ
AWK ব্যবহার করে জটিল ডেটা প্রসেসিংয়ের জন্য শক্তিশালী স্ক্রিপ্ট তৈরি করা যায়। অ্যারে, শর্ত, এবং লুপ ব্যবহার করে AWK প্রোগ্রামিং সহজে বিভিন্ন স্তরের বিশ্লেষণ করতে পারে। এই স্ক্রিপ্টগুলি ব্যবহার করে আপনি আপনার ডেটা বিশ্লেষণকে আরও কার্যকর এবং স্বয়ংক্রিয় করতে পারেন।
Read more