AWK একটি শক্তিশালী টেক্সট প্রসেসিং ভাষা, যা বিভিন্ন উপাদান নিয়ে গঠিত। AWK এর মূল উপাদানগুলোর মধ্যে উল্লেখযোগ্য হল:
১. ফিল্ড এবং রেকর্ড
- ফিল্ড: AWK সাধারণত টেবিলের মতো ডেটা স্ট্রাকচারের সাথে কাজ করে, যেখানে প্রতিটি কলামকে ফিল্ড বলা হয়। ডিফল্টভাবে, AWK স্পেস বা ট্যাব দ্বারা ফিল্ড আলাদা করে।
- রেকর্ড: প্রতিটি লাইনের সেটকে রেকর্ড বলা হয়। AWK পুরো রেকর্ডকে একটি লাইন হিসেবে গণ্য করে।
২. প্রিপ্রসেসিং
AWK ফাইল পড়ার সময় প্রথমে এটি ইনপুট ফাইল থেকে ডেটা পড়ে এবং পরে ফিল্ড ও রেকর্ড অনুযায়ী ডেটা বিশ্লেষণ করে।
৩. শর্ত
AWK প্রোগ্রামে শর্ত ব্যবহার করা হয়, যা নির্দিষ্ট শর্ত সাপেক্ষে কার্যক্রম সম্পাদন করে। উদাহরণস্বরূপ, যদি একটি কলামে একটি নির্দিষ্ট মান থাকে, তবে তা ফিল্টার করা যায়।
৪. অ্যাকশন
শর্ত পূরণ হলে AWK যেসব অ্যাকশন গ্রহণ করে, সেগুলো হল প্রিন্ট করা, পরিবর্তন করা ইত্যাদি। AWK এর একটি গুরুত্বপূর্ণ অংশ হল { action }, যেখানে অ্যাকশনগুলি নির্ধারিত হয়।
৫. বিল্ট-ইন ফাংশন
AWK বিভিন্ন বিল্ট-ইন ফাংশন সরবরাহ করে, যেমন length(), substr(), split(), ইত্যাদি, যা ডেটার উপর কাজ করতে সহায়তা করে।
AWK কমান্ড সিনট্যাক্স
AWK এর সাধারণ কমান্ড সিনট্যাক্স নিম্নরূপ:
awk 'condition { action }' filenameসিনট্যাক্সের উপাদান
- condition: এটি একটি শর্ত যা AWK চেক করবে। যদি শর্তটি সত্য হয়, তবে
{ action }কার্যকর হবে। শর্ত সাধারণত একটি প্যাটার্ন বা একটি তুলনা হতে পারে। - action: এটি একটি বা একাধিক কমান্ড যা শর্তটি পূরণ হলে কার্যকর হবে। এটি একটি একক প্রিন্ট স্টেটমেন্ট হতে পারে বা বিভিন্ন প্রসেসিং অপারেশন অন্তর্ভুক্ত করতে পারে।
- filename: এটি সেই ফাইলের নাম যেখানে AWK কাজ করবে। AWK একাধিক ফাইলের সাথে কাজ করতে পারে।
উদাহরণ
সব লাইন প্রিন্ট করা:
awk '{print}' filename.txtএখানে কোনো শর্ত নেই, তাই এটি
filename.txtএর সমস্ত লাইন প্রিন্ট করবে।একটি নির্দিষ্ট ফিল্ড প্রিন্ট করা:
awk '{print $1}' filename.txtএখানে
$1প্রথম ফিল্ড (কলাম) প্রিন্ট করবে।শর্ত অনুযায়ী প্রিন্ট করা:
awk '$2 > 100 {print $1, $2}' filename.txtএখানে যদি দ্বিতীয় ফিল্ডের মান 100 এর বেশি হয়, তবে প্রথম ও দ্বিতীয় ফিল্ড প্রিন্ট হবে।
গণনা করা:
awk '{sum += $1} END {print sum}' filename.txtএটি
filename.txtএর প্রথম কলামের সব মান যোগ করে এবং শেষে মোট যোগফল প্রিন্ট করবে।প্যাটার্ন ম্যাচিং:
awk '/error/ {print}' logfile.txtএখানে
logfile.txtফাইলে "error" শব্দযুক্ত সব লাইন প্রিন্ট হবে।
AWK এর এই মূল উপাদান এবং কমান্ড সিনট্যাক্স আপনাকে টেক্সট ফাইলের ডেটা প্রক্রিয়াকরণ এবং বিশ্লেষণের কাজকে সহজ করে তুলবে। AWK একটি শক্তিশালী টুল হিসেবে বিভিন্ন ব্যবহারকারী এবং প্রোগ্রামারের মধ্যে জনপ্রিয় হয়ে উঠেছে।
Read more