ব্যাশে কিভাবে awk কমান্ড ব্যবহার করবেন

Byase Kibhabe Awk Kamanda Byabahara Karabena



কমান্ড লাইন এনভায়রনমেন্টে কাজ করার সময়, ফাইল, ডিরেক্টরি এবং অন্যান্য ডেটা কার্যকরভাবে পরিচালনা করার জন্য উপলব্ধ বিভিন্ন কমান্ডের দৃঢ় ধারণা থাকা অপরিহার্য। এরকম একটি কমান্ড হল 'awk' কমান্ড। awk একটি শক্তিশালী ইউটিলিটি যা ইউনিক্স/লিনাক্স এনভায়রনমেন্টে টেক্সট ফাইল প্রসেস এবং ম্যানিপুলেট করতে ব্যবহৃত হয়। এই নিবন্ধটি 'awk' কমান্ড কী এবং এটি কার্যকরভাবে ব্যবহার করার উপায়গুলি ব্যাখ্যা করবে।

'awk' কমান্ড কি?

ইউনিক্স/লিনাক্স পরিবেশে টেক্সট ফাইলগুলিকে ম্যানিপুলেট এবং প্রসেস করার জন্য 'awk' কমান্ড একটি শক্তিশালী টুল। এটি প্যাটার্ন ম্যাচিং, ফিল্টারিং, বাছাই করা এবং ডেটা ম্যানিপুলেট করার মতো কাজগুলি করতে ব্যবহার করা যেতে পারে। awk প্রধানত একটি কাঠামোগত পদ্ধতিতে ডেটা প্রক্রিয়া এবং ম্যানিপুলেট করতে ব্যবহৃত হয়।







কিভাবে awk কমান্ড ব্যবহার করবেন

awk একটি কমান্ড-লাইন টুল যা বিভিন্ন উপায়ে ব্যবহার করা যেতে পারে। এটি সরাসরি কমান্ড লাইন থেকে আহ্বান করা যেতে পারে, অথবা এটি একটি শেল স্ক্রিপ্টের সাথে ব্যবহার করা যেতে পারে। এখানে awk ব্যবহার করার কিছু উদাহরণ রয়েছে:



উদাহরণ 1: একটি ফাইলে লাইনের সংখ্যা গণনা করা

একটি ফাইলে লাইনের সংখ্যা গণনা করতে, আপনি নিম্নলিখিত awk সিনট্যাক্স ব্যবহার করতে পারেন:



awk 'শেষ{প্রিন্ট NR}' < file-name.txt >


এখানে, 'NR' হল একটি অন্তর্নির্মিত পরিবর্তনশীল যা awk দ্বারা প্রক্রিয়াকৃত রেকর্ডের সংখ্যা (লাইন) ধারণ করে। 'END' কীওয়ার্ডটি awk কে ফাইলের সমস্ত লাইন প্রসেস করার পর এই কমান্ডটি কার্যকর করতে বলে। এখানে আমি উদাহরণের উদ্দেশ্যে একটি ফাইল টেক্সট ফাইল তৈরি করেছি এবং তারপরে একটি শেল স্ক্রিপ্টে উপরের সিনট্যাক্সটি ব্যবহার করেছি:





#!/bin/bash
awk 'শেষ{প্রিন্ট NR}' testfile.txt


আমার তৈরি করা টেক্সট ফাইলটিতে দুটি লাইন রয়েছে এবং যখন awk কমান্ডটি ব্যবহার করা হয় তখন আউটপুট 2 প্রদর্শিত হয়, আপনি নীচের ছবিতে আমার তৈরি করা টেক্সট ফাইলটি দেখতে পারেন:



উদাহরণ 2: ফিল্টারিং ডেটা

awk নির্দিষ্ট মানদণ্ডের উপর ভিত্তি করে ডেটা ফিল্টার করতে ব্যবহার করা যেতে পারে এবং এখানে সিনট্যাক্স রয়েছে যা এই উদ্দেশ্যে ব্যবহার করা উচিত:

awk '!/<ডেটা-টু-ফিল্টার>/' < file-name.txt >


উদাহরণস্বরূপ, আপনি 'হ্যালো' শব্দ ধারণ করে এমন একটি ফাইলের সমস্ত লাইন ফিল্টার করতে নীচের কমান্ডটি ব্যবহার করতে পারেন।

#!বিন/বাশ
awk '!/হ্যালো/' testfile.txt


এই উদাহরণে, '!' প্রতীক নিয়মিত অভিব্যক্তি অনুসন্ধানকে অস্বীকার করে, তাই 'হ্যালো' শব্দটি ধারণ করে না এমন সমস্ত লাইন মুদ্রিত হবে। আমি আগের উদাহরণের মতো একই টেক্সট ফাইল ব্যবহার করেছি তাই এখানে উপরের প্রদত্ত স্ক্রিপ্টের আউটপুট রয়েছে:

উদাহরণ 3: নির্দিষ্ট ক্ষেত্র নিষ্কাশন করা

awk একটি ফাইল থেকে নির্দিষ্ট ক্ষেত্রগুলি বের করতেও ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, যদি আপনার কাছে নাম এবং ঠিকানাগুলির একটি তালিকা সম্বলিত একটি ফাইল থাকে এবং আপনি শুধুমাত্র নামগুলি বের করতে চান তবে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

awk '{print $}' < file-name.txt >


এখানে দৃষ্টান্তের জন্য, আমি একই টেক্সট ফাইলের প্রথম ক্ষেত্রটি প্রিন্ট করেছি এবং '$1' ফাইলের প্রতিটি লাইনের প্রথম ক্ষেত্রটি উপস্থাপন করে। 'প্রিন্ট' কমান্ডটি awk কে শুধুমাত্র সেই ক্ষেত্রটি প্রিন্ট করতে বলে।

#!/bin/bash
awk '{প্রিন্ট $1}' testfile.txt


টেক্সট ফাইলে প্রথম লাইনের প্রথম এন্ট্রি হল 'This' এবং দ্বিতীয় লাইনের প্রথম এন্ট্রি হল 'Hello' তাই এখানে প্রদত্ত কোডের আউটপুট রয়েছে:

উপসংহার

awk কমান্ড একটি শক্তিশালী টুল যা টেক্সট ফাইল ম্যানিপুলেট এবং প্রক্রিয়া করতে ব্যবহৃত হয়। এটি আপনাকে টেক্সট ফাইলগুলিতে বিভিন্ন ক্রিয়াকলাপ সম্পাদন করতে দেয়, যেমন নির্দিষ্ট কলাম প্রিন্ট করা, প্যাটার্ন অনুসন্ধান করা এবং যোগফল গণনা করা। awk এর মূল বিষয়গুলি আয়ত্ত করার মাধ্যমে, আপনি আপনার কর্মপ্রবাহকে স্ট্রিমলাইন করতে পারেন এবং আরও দক্ষ এবং কার্যকর লিনাক্স বা ইউনিক্স ব্যবহারকারী হয়ে উঠতে পারেন।