লিনাক্স সিস্টেম অ্যাডমিনিস্ট্রেটর হিসাবে, অনেক সময় আপনি এমন পরিস্থিতিতে পড়তে পারেন যেখানে কয়েকটি লাইন ফিল্টার করে আউটপুটটির অংশটি প্রদর্শন করতে আপনাকে বিভিন্ন কমান্ড থেকে আউটপুটটি পুনরায় ফর্ম্যাট করতে হবে re ফিল্টার হিসাবে পরিচিত লিনাক্স প্রোগ্রামের সংগ্রহ ব্যবহার করে এই প্রক্রিয়াটিকে পাঠ্য ফিল্টারিং হিসাবে উল্লেখ করা যেতে পারে।
পাঠ্য ফিল্টারিংয়ের জন্য বেশ কয়েকটি লিনাক্স ইউটিলিটি রয়েছে এবং কিছু পরিচিত ফিল্টারগুলির মধ্যে রয়েছে হেড, লেজ, গ্রেপ, টিআর, এফএমটি, সাজানো, ইউনিক, পিআর এবং আরও উন্নত এবং শক্তিশালী সরঞ্জাম যেমন আওক এবং শেড।
আরও পড়ুন →আওক সিরিজের শুরু থেকে পর্ব 12 অবধি সমস্ত আমরা কমান্ড লাইনে এবং শেল স্ক্রিপ্টগুলিতে যথাক্রমে ছোট্ট অ্যাওক কমান্ড এবং প্রোগ্রাম লিখছি।
যাইহোক, শেল যেমন শওক, তেমনি একটি অনূদিত ভাষাও তাই এই সিরিজটির শুরু থেকে আমরা যা যা করেছি তার সাথে আপনি এখন আওক এক্সিকিউটেবল স্ক্রিপ্টগুলি লিখতে পারেন।
আমরা কীভাবে শেল স্ক্রিপ্ট লিখি তার অনুরূপ, আওক স্ক্রিপ্টগুলি লাইন দিয়ে শুরু হয়:
#! /path/to/awk/utility -fউদাহরণস্বরূপ আমার সিস্টেমে, অ্যাডক ইউটিলিটিটি/usr/bin/awk এ অবস্থিত, অতএব, আমি নীচে একটি Awk স্ক্রিপ্ট শুরু করব:
#! /usr/bin/awk -fউপরের লাইনটি ব্যাখ্যা
আরও পড়ুন →আপনি এখনও অবধি যে সমস্ত আওক উদাহরণগুলি পর্যালোচনা করেছেন তা পর্যালোচনা করুন যখন কিছু শর্তের উপর ভিত্তি করে পাঠ্য ফিল্টারিং কার্যক্রম শুরু করা হয়, সেখান থেকেই প্রবাহ নিয়ন্ত্রণের বিবৃতিগুলির পদ্ধতির সেট হয়।
অ্যাওক প্রোগ্রামিংয়ে বিভিন্ন প্রবাহ নিয়ন্ত্রণের বিবৃতি রয়েছে এবং এর মধ্যে রয়েছে:
যখন আমরা শেল স্ক্রিপ্টগুলি লিখি, আমরা সাধারণত আমাদের স্ক্রিপ্টগুলিতে অন্যান্য ছোট প্রোগ্রাম বা কমান্ড যেমন আওক অপারেশনগুলিকে অন্তর্ভুক্ত করি। আউকের ক্ষেত্রে, আমাদের শেল থেকে আওক অপারেশনে কিছু মান পাস করার উপায়গুলি খুঁজে বের করতে হবে।
এটি Awk কমান্ডের মধ্যে শেল ভেরিয়েবল ব্যবহার করে করা যেতে পারে, এবং সিরিজের এই অংশে, আমরা Awk কে শেল ভেরিয়েবলগুলি ব্যবহার করার অনুমতি দিতে পারি যাতে আমরা Awk কমান্ডগুলিতে পাস করতে চাই এমন মান থাকতে পারে।
শেল ভেরিয়েবলগুলি ব্যবহার করতে আপনি Awk সক্ষম করতে পারেন এমন দুটি উপায় সম্ভবত:
আস্ক কমান্ডের শেল ভেরিয়েবলে
আরও পড়ুন →সিরিজের এই অংশে আমরা যেমন Awk বৈশিষ্ট্যগুলির বিভাগটি উন্মোচন করার সাথে সাথে আমরা Awk-এ বিল্ট-ইন ভেরিয়েবলের ধারণাটি অনুসরণ করব। আপনি Awk এ দুটি ধরণের ভেরিয়েবল ব্যবহার করতে পারেন, সেগুলি হল; ব্যবহারকারী-সংজ্ঞায়িত ভেরিয়েবলগুলি, যা আমরা অংশ 8 এবং অন্তর্নির্মিত ভেরিয়েবলগুলিতে আচ্ছাদিত করেছি।
অন্তর্নির্মিত ভেরিয়েবলগুলির ইতিমধ্যে Awk এ সংজ্ঞায়িত মান রয়েছে তবে আমরা সেই মানগুলি সাবধানতার সাথে পরিবর্ত
আরও পড়ুন →আওক কমান্ড সিরিজটি উত্তেজনাপূর্ণ হয়ে উঠছে আমি বিশ্বাস করি, পূর্ববর্তী সাতটি অংশে আমরা আউকের কয়েকটি ফান্ডামেন্টালগুলি পেরিয়েছি যেগুলি আপনাকে লিনাক্সে কিছু বেসিক পাঠ্য বা স্ট্রিং ফিল্টারিং করতে সক্ষম করার জন্য মাস্টার করা দরকার।
এই অংশটি দিয়ে শুরু করে, আমরা আরও জটিল পাঠ্য বা স্ট্রিং ফিল্টারিং ক্রিয়াকলাপ পরিচালনা করতে Awk এর অগ্রিম অঞ্চলে ডুব দেব। অতএব, আমরা ভেরিয়েবল, সংখ্যাগত এক্সপ্রেশন এবং অ্যাসাইনমেন্ট অপারেটরগুলির মতো Awk বৈশিষ্ট্যগুলি কভার করতে চলেছি।
আরও পড়ুন →আওক সরঞ্জাম সিরিজের আগের অংশগুলিতে আমরা বেশিরভাগ ফাইল (গুলি) থেকে ইনপুট পড়ার দিকে তাকিয়েছিলাম তবে আপনি যদি এসটিডিএন থেকে ইনপুট পড়তে চান তবে কী হবে।
আওক সিরিজের এই অংশ 7-এ, আমরা কয়েকটি উদাহরণ দেখব যেখানে আপনি কোনও ফাইল থেকে ইনপুট পড়ার পরিবর্তে অন্যান্য কমান্ডের আউটপুট ফিল্টার করতে পারবেন।
নীচের প্রথম উদাহরণে আমরা ls কমান্ড দিয়ে শুরু করব, আমরা মালিকের ব্যবহারকারীর নাম, গোষ্ঠীকরণের নাম এবং বর্তমানের নিজস্ব ফাইলগুলি মুদ্রণের জন্য আওক এর ইনপুট হিসাবে dir -l কমান্ডের আউটপুটটি ব্যবহার করব ডিরেক্টরি:
# dir -l | awk '{print $3, $4, $9;}' আরও পড়ুন →আওক সিরিজের এই sixth ষ্ঠ অংশে, আমরা পরবর্তী কমান্ডটি ব্যবহার করব, যা আউককে আপনার দেওয়া সমস্ত অবশিষ্ট নিদর্শন এবং অভিব্যক্তি এড়িয়ে চলতে বলেছে, পরিবর্তে পরবর্তী ইনপুট লাইনটি পড়ুন।
পরবর্তী কমান্ড আপনাকে কমান্ড এক্সিকিউশনের সময় নষ্টকারী পদক্ষেপ হিসাবে আমি উল্লেখ করব তা কার্যকর করা রোধ করতে সহায়তা করে।
এটি কীভাবে কাজ করে তা বোঝার জন্য আসুন আমরা এই জাতীয় দেখতে খাদ্য_লিস্ট.টেক্সট নামে একটি ফাইল বিবেচনা করি:
No Item_Name Price Quantity 1 Mangoes $3.45 5 2 Apples আরও পড়ুন →শর্তটি পূরণ হয়েছে কিনা তা যাচাই করার সময় আমরা সর্বদা সরল অভিব্যক্তিগুলির দিকে নজর রেখেছি। যদি আপনি আরও একটি বিশেষ শর্তটি পরীক্ষা করার জন্য একটি এক্সপ্রেশন ব্যবহার করতে চান?
এই নিবন্ধে, আমরা পাঠ্য বা স্ট্রিং ফিল্টার করার সময় কোনও শর্ত পরীক্ষা করতে যৌগিক অভিব্যক্তি হিসাবে অভিহিত একাধিক এক্সপ্রেশনকে কীভাবে একত্র করতে পারি তা আমরা একবারে পর্যালোচনা করব।
ওওকে, (এবং)
এবং || (বা) হিসাবে উল্লেখ করা হিসাবে ব্যবহৃত && ব্যবহার করে যৌগিক অভিব্যক্তি তৈরি করা হয় যৌগিক চালকগণ
যৌগিক এক্সপ্রেশনগুলির জন্য সাধারণ বাক্য গঠন:
আরও পড়ুন →পাঠ্যের একটি লাইনে সংখ্যাসূচক বা স্ট্রিং মানগুলির সাথে কাজ করার সময়, তুলনামূলক অপারেটরগুলি ব্যবহার করে পাঠ্য বা স্ট্রিংগুলি ফিল্টারিং করা Awk কমান্ড ব্যবহারকারীদের পক্ষে আসে।
আওক সিরিজের এই অংশে, আমরা তুলনা অপারেটরগুলি ব্যবহার করে আপনি কীভাবে পাঠ্য বা স্ট্রিংগুলি ফিল্টার করতে পারবেন তা একবার দেখে নিই। আপনি যদি প্রোগ্রামার হন তবে আপনাকে অবশ্যই তুলনা অপারেটরগুলির সাথে ইতিমধ্যে পরিচিত হতে হবে তবে যারা নেই তারা আমাকে নীচের অংশে ব্যাখ্যা করুন।
Awk এ তুলনা অপারেটরগুলি সংখ্যা বা স্ট্রিংয়ের মান তুলনা করতে ব্যবহৃত হয় এবং সেগুলিতে নিম্নলিখিতগুলি অন্তর্ভুক্ত করা হয়: