AWK NF কি?

Awk Nf Ki



এডব্লিউকে স্ক্রিপ্টিং ল্যাঙ্গুয়েজটিতে কিছু পূর্বনির্ধারিত উদ্দেশ্য পূরণের জন্য বিল্ট-ইন বিশেষ ভেরিয়েবলের একটি সিরিজ রয়েছে। এরকম একটি বিল্ট-ইন ভেরিয়েবল হল 'NF' যার নিজস্ব পূর্বনির্ধারিত কার্যকারিতা রয়েছে। এই নিবন্ধটি উবুন্টু 20.04-এ কিছু প্রাসঙ্গিক উদাহরণ প্রদর্শন করে এই অন্তর্নির্মিত AWK ভেরিয়েবলের উদ্দেশ্য অন্বেষণ করবে।

উবুন্টু 20.04 এ AWK NF:

'NF' AWK ভেরিয়েবলটি যেকোন প্রদত্ত ফাইলের সমস্ত লাইনের ক্ষেত্রের সংখ্যা প্রিন্ট করতে ব্যবহৃত হয়। এই বিল্ট-ইন ভেরিয়েবলটি ফাইলের সমস্ত লাইনের মাধ্যমে একে একে পুনরাবৃত্তি করে এবং প্রতিটি লাইনের জন্য আলাদাভাবে ফিল্ডের সংখ্যা প্রিন্ট করে। এই কার্যকারিতাটি সুন্দরভাবে বোঝার জন্য, আপনাকে নীচে আলোচনা করা উদাহরণগুলি পড়তে হবে।

উবুন্টু 20.04 এ AWK NF এর ব্যবহার প্রদর্শনের উদাহরণ:

নিম্নলিখিত চারটি উদাহরণ এমনভাবে ডিজাইন করা হয়েছে যাতে আপনি AWK NF-এর ব্যবহার খুব সহজে বোঝা যায়। এই সমস্ত উদাহরণ উবুন্টু 20.04 অপারেটিং সিস্টেম ব্যবহার করে প্রয়োগ করা হয়েছে।







উদাহরণ # 1: একটি পাঠ্য ফাইলের প্রতিটি লাইন থেকে ক্ষেত্রগুলির সংখ্যা মুদ্রণ করুন:

এই উদাহরণে, আমরা উবুন্টু 20.04-এ প্রতিটি লাইন বা সারির ক্ষেত্র বা কলামের সংখ্যা বা টেক্সট ফাইলের রেকর্ড প্রিন্ট করতে চেয়েছিলাম। আপনাকে এটি করার পদ্ধতি দেখানোর জন্য, আমরা নীচের ছবিতে দেখানো টেক্সট ফাইলটি তৈরি করেছি। এই টেক্সট ফাইলটিতে পাকিস্তানের পাঁচটি ভিন্ন শহর থেকে প্রতি কিলোগ্রাম আপেলের হার রয়েছে।





একবার আমরা এই নমুনা টেক্সট ফাইলটি তৈরি করার পরে, আমরা আমাদের টার্মিনালে এই টেক্সট ফাইলের প্রতিটি লাইন থেকে ফিল্ডের সংখ্যা প্রিন্ট করতে নিম্নলিখিত কমান্ডটি কার্যকর করেছি:





$ awk ' { এনএফ প্রিন্ট করুন } AppleRates.txt

এই কমান্ডে, আমাদের কাছে 'awk' কীওয়ার্ড রয়েছে যা দেখায় যে আমরা একটি AWK কমান্ড চালাচ্ছি যার পরে 'প্রিন্ট NF' বিবৃতি রয়েছে যা কেবলমাত্র টার্গেট টেক্সট ফাইলের প্রতিটি লাইনের মাধ্যমে পুনরাবৃত্তি করবে এবং প্রতিটির জন্য আলাদাভাবে ফিল্ডের সংখ্যা প্রিন্ট করবে। টেক্সট ফাইলের লাইন। অবশেষে, আমাদের কাছে সেই টেক্সট ফাইলের নাম (যার ক্ষেত্রগুলি গণনা করা হবে) যা আমাদের ক্ষেত্রে 'AppleRatest.txt'।



যেহেতু আমাদের টেক্সট ফাইলের পাঁচটি লাইনের জন্য আমাদের কাছে একই সংখ্যক ফিল্ড ছিল, অর্থাৎ 2, এই কমান্ডটি কার্যকর করার কারণে সমস্ত টেক্সট ফাইল লাইনের ক্ষেত্রের সংখ্যা হিসাবে একই সংখ্যা মুদ্রিত হয়। এটি নীচের চিত্র থেকে দেখা যেতে পারে:

উদাহরণ # 2: একটি উপস্থাপনযোগ্য পদ্ধতিতে একটি পাঠ্য ফাইলের প্রতিটি লাইন থেকে ক্ষেত্রগুলির সংখ্যা মুদ্রণ করুন:

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

$ awk ' { প্রিন্ট NR, “---”, NF } AppleRates.txt

এই কমান্ডে, আমরা বিল্ট-ইন AWK ভেরিয়েবল 'NR' প্রবর্তন করেছি যা আমাদের টার্গেট টেক্সট ফাইলের সমস্ত লাইনের লাইন নম্বর প্রিন্ট করবে। তাছাড়া, আমরা তিনটি ড্যাশ ব্যবহার করেছি, '—' একটি বিশেষ অক্ষর হিসাবে আমাদের প্রদত্ত টেক্সট ফাইলের ক্ষেত্রগুলির সংখ্যা থেকে লাইন নম্বরগুলিকে আলাদা করতে।

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

উদাহরণ # 3: একটি পাঠ্য ফাইলের প্রতিটি লাইন থেকে প্রথম এবং শেষ ক্ষেত্রগুলি মুদ্রণ করুন:

একটি প্রদত্ত টেক্সট ফাইলের সমস্ত লাইনের ক্ষেত্রের সংখ্যা গণনা করা ছাড়াও, AWK-এর 'NF' বিশেষ ভেরিয়েবলটি প্রদত্ত টেক্সট ফাইল থেকে শেষ ক্ষেত্রের প্রকৃত মানগুলি বের করতেও ব্যবহার করা যেতে পারে। আবার, আমরা একই টেক্সট ফাইল ব্যবহার করেছি যা আমরা আমাদের প্রথম দুটি উদাহরণের জন্য ব্যবহার করেছি। যাইহোক, আমরা এই উদাহরণে আমাদের টেক্সট ফাইলের প্রথম এবং শেষ ক্ষেত্রগুলির প্রকৃত মানগুলি প্রিন্ট করতে চাই। এর জন্য, আমরা নিম্নলিখিত কমান্ডটি কার্যকর করেছি:

$ awk ' { ছাপা $1 , $NF } AppleRates.txt

'awk' কীওয়ার্ডটি এই কমান্ডে 'প্রিন্ট $1, $NF' বিবৃতি দ্বারা অনুসরণ করা হয়েছে। '$1' বিশেষ ভেরিয়েবলটি প্রথম ক্ষেত্র বা আমাদের প্রদত্ত টেক্সট ফাইলের প্রথম কলামের মান প্রিন্ট করতে ব্যবহার করা হয়েছে, যেখানে '$NF' AWK ভেরিয়েবলটি শেষ ক্ষেত্র বা শেষ কলামের মান প্রিন্ট করতে ব্যবহার করা হয়েছে। আমাদের টার্গেট টেক্সট ফাইলের। আপনাকে এখানে লক্ষ্য করতে হবে যে যখন আমরা 'NF' AWK ভেরিয়েবলটি ব্যবহার করি, তখন এটি প্রতিটি লাইনের ক্ষেত্রের সংখ্যা গণনা করতে ব্যবহৃত হয়; যাইহোক, যখন এটি ডলার '$' চিহ্নের সাথে ব্যবহার করা হয়, তখন এটি প্রদত্ত টেক্সট ফাইলের শেষ ক্ষেত্র থেকে প্রকৃত মানগুলি বের করবে। বাকি কমান্ড কমবেশি একই কমান্ডের মত যা প্রথম দুটি উদাহরণের জন্য ব্যবহার করা হয়েছে।

নীচে দেখানো আউটপুটে, আপনি দেখতে পাচ্ছেন যে আমাদের প্রদত্ত টেক্সট ফাইলের প্রথম এবং শেষ ক্ষেত্রের প্রকৃত মানগুলি টার্মিনালে মুদ্রিত হয়েছে। আপনি দেখতে পাচ্ছেন যে এই আউটপুটটি 'বিড়াল' কমান্ডের আউটপুটের সাথে প্রায় একই রকম কারণ শুধুমাত্র আমাদের প্রদত্ত টেক্সট ফাইলে দুটি ক্ষেত্র ছিল; সুতরাং, একটি উপায়ে, উপরে উল্লিখিত কমান্ডটি কার্যকর করার ফলে আমাদের পুরো টেক্সট ফাইলের বিষয়বস্তু টার্মিনালে মুদ্রিত হয়েছিল।

উদাহরণ # 4: একটি পাঠ্য ফাইলে অনুপস্থিত ক্ষেত্রগুলির সাথে রেকর্ডগুলি পৃথক করুন:

মাঝে মাঝে, নির্দিষ্ট অনুপস্থিত ক্ষেত্র সহ একটি পাঠ্য ফাইলে কিছু রেকর্ড থাকে এবং আপনি সেই রেকর্ডগুলিকে প্রতিটি দিক থেকে সম্পূর্ণ হওয়া থেকে আলাদা করতে চাইতে পারেন। এটি 'NF' AWK ভেরিয়েবল ব্যবহার করেও করা যেতে পারে। এর জন্য, আমরা 'ExamMarks.txt' নামে একটি টেক্সট ফাইল তৈরি করেছি যাতে তিনটি ভিন্ন পরীক্ষায় পাঁচজন শিক্ষার্থীর পরীক্ষার স্কোর সহ তাদের নামের সাথে রয়েছে। তবে তৃতীয় পরীক্ষায় কয়েকজন শিক্ষার্থী অনুপস্থিত থাকায় তাদের স্কোর অনুপস্থিত ছিল। এই টেক্সট ফাইলটি নিম্নরূপ:

অনুপস্থিত ক্ষেত্র সহ রেকর্ডগুলি সম্পূর্ণ ক্ষেত্রগুলির সাথে রেকর্ডগুলি থেকে আলাদা করতে, আমরা নীচে দেখানো কমান্ডটি কার্যকর করব:

$ awk ' { প্রিন্ট NR, '--- > ”, এনএফ } ExamMarks.txt

এই কমান্ডটি একই যা আমরা আমাদের দ্বিতীয় উদাহরণের জন্য ব্যবহার করেছি। যাইহোক, নিম্নলিখিত ছবিতে দেখানো এই কমান্ডের আউটপুট থেকে, আপনি দেখতে পাচ্ছেন যে প্রথম এবং চতুর্থ রেকর্ডগুলি সম্পূর্ণ, যেখানে দ্বিতীয়, তৃতীয় এবং পঞ্চম রেকর্ডগুলিতে অনুপস্থিত ক্ষেত্র রয়েছে।

উপসংহার:

এই নিবন্ধটির উদ্দেশ্য ছিল 'NF' AWK বিশেষ ভেরিয়েবলের ব্যবহার ব্যাখ্যা করা। আমরা প্রথমে সংক্ষিপ্তভাবে আলোচনা করেছি কিভাবে এই পরিবর্তনশীল কাজ করে, এবং তার পরে, আমরা চারটি ভিন্ন উদাহরণের সাহায্যে এই ধারণাটি ভালভাবে ব্যাখ্যা করেছি। একবার আপনি সমস্ত ভাগ করা উদাহরণগুলি ভালভাবে বুঝতে পারলে, আপনি ক্ষেত্রগুলির মোট সংখ্যা গণনা করতে এবং প্রদত্ত ফাইলের শেষ ক্ষেত্রের প্রকৃত মানগুলি প্রিন্ট করতে 'NF' AWK ভেরিয়েবল ব্যবহার করতে সক্ষম হবেন৷