লিনাক্সে আওকের সাথে তুলনা অপারেটরগুলি কীভাবে ব্যবহার করবেন - পার্ট 4


পাঠ্যের একটি লাইনে সংখ্যাসূচক বা স্ট্রিং মানগুলির সাথে কাজ করার সময়, তুলনামূলক অপারেটরগুলি ব্যবহার করে পাঠ্য বা স্ট্রিংগুলি ফিল্টারিং করা Awk কমান্ড ব্যবহারকারীদের পক্ষে আসে।

আওক সিরিজের এই অংশে, আমরা তুলনা অপারেটরগুলি ব্যবহার করে আপনি কীভাবে পাঠ্য বা স্ট্রিংগুলি ফিল্টার করতে পারবেন তা একবার দেখে নিই। আপনি যদি প্রোগ্রামার হন তবে আপনাকে অবশ্যই তুলনা অপারেটরগুলির সাথে ইতিমধ্যে পরিচিত হতে হবে তবে যারা নেই তারা আমাকে নীচের অংশে ব্যাখ্যা করুন।

Awk এ তুলনা অপারেটরগুলি সংখ্যা বা স্ট্রিংয়ের মান তুলনা করতে ব্যবহৃত হয় এবং সেগুলিতে নিম্নলিখিতগুলি অন্তর্ভুক্ত করা হয়:

  1. > -
  2. এর চেয়ে বড়
  3. < -
  4. এর চেয়ে কম
  5. > = - এর চেয়ে বড় বা সমান
  6. <= - এর চেয়ে কম বা সমান
  7. == -
  8. এর সমান
  9. ! = -
  10. এর সমান নয়
  11. কিছু_মূল্য pattern/প্যাটার্ন/ - সত্য যদি কিছু_মূল্য প্যাটার্নের সাথে মেলে
  12. কিছু_মূল্য! pattern/প্যাটার্ন/ - সত্য যদি কিছু_ভ্যালু প্যাটার্নের সাথে মেলে না

এখন যেহেতু আমরা আওক-এর বিভিন্ন তুলনা অপারেটরগুলির দিকে নজর রেখেছি, আসুন একটি উদাহরণ ব্যবহার করে সেগুলি আরও ভালভাবে বুঝতে পারি।

এই উদাহরণে, আমাদের কাছে ফুড_লিস্ট.টেক্স নামের একটি ফাইল রয়েছে যা বিভিন্ন খাদ্য আইটেমের শপিংয়ের তালিকা এবং আমি এমন খাবার আইটেমগুলিকে ফ্ল্যাগ করতে চাই যেগুলির পরিমাণ (**) যোগ করে 20 এর চেয়ে কম বা সমান প্রতিটি লাইন শেষে।

No      Item_Name               Quantity        Price
1       Mangoes                    45           $3.45
2       Apples                     25           $2.45
3       Pineapples                 5            $4.45
4       Tomatoes                   25           $3.45
5       Onions                     15           $1.45
6       Bananas                    30           $3.45

Awk এ তুলনা অপারেটরগুলি ব্যবহার করার জন্য সাধারণ বাক্য গঠন:

# expression { actions; }

উপরের লক্ষ্যটি অর্জন করতে, আমাকে নীচের কমান্ডটি চালাতে হবে:

# awk '$3 <= 30 { printf "%s\t%s\n", $0,"**" ; } $3 > 30 { print $0 ;}' food_list.txt

No	Item_Name`		Quantity	Price
1	Mangoes	      		   45		$3.45
2	Apples			   25		$2.45	**
3	Pineapples		   5		$4.45	**
4	Tomatoes		   25		$3.45	**
5	Onions			   15           $1.45	**
6	Bananas			   30           $3.45	**

উপরের উদাহরণে, দুটি গুরুত্বপূর্ণ বিষয় ঘটে যা:

  1. প্রথম প্রকাশ {ক্রিয়া; } সংমিশ্রণ, $3 <= 30 {প্রিন্টফ "% s\t% s\n", $0, "**"; 30 30 এর চেয়ে কম বা সমান পরিমাণযুক্ত লাইনগুলি মুদ্রণ করে এবং প্রতিটি লাইনের শেষে একটি (**) যুক্ত করে। পরিমাণের মান field 3 ফিল্ড ভেরিয়েবল ব্যবহার করে অ্যাক্সেস করা হয়
  2. দ্বিতীয় প্রকাশ {ক্রিয়া; } সংমিশ্রণ, $3> 30 {প্রিন্ট করুন $0; lines অপরিবর্তিত রেখাগুলি প্রিন্ট করে যেহেতু তাদের পরিমাণ 30 এর বেশি হয়

আরও একটি উদাহরণ:

# awk '$3 <= 20 { printf "%s\t%s\n", $0,"TRUE" ; } $3 > 20  { print $0 ;} ' food_list.txt 

No	Item_Name		Quantity	Price
1	Mangoes			   45		$3.45
2	Apples			   25		$2.45
3	Pineapples		   5		$4.45	TRUE
4	Tomatoes		   25		$3.45
5	Onions			   15           $1.45	TRUE
6       Bananas	                   30           $3.45

এই উদাহরণে, আমরা শেষে (TRUE) শব্দের সাথে কম বা সমান পরিমাণযুক্ত রেখাগুলি নির্দেশ করতে চাই।

সারসংক্ষেপ

এটি আওক-এ অপারেটরগুলির তুলনা করার জন্য একটি প্রাথমিক শিক্ষণীয়, অতএব আপনাকে আরও অনেক বিকল্প ব্যবহার করে আরও আবিষ্কার করতে হবে to

আপনি যে কোনও সমস্যার মুখোমুখি হন বা আপনার মনে যে কোনও সংযোজন রয়েছে সে ক্ষেত্রে নীচের মন্তব্য বিভাগে একটি মন্তব্য দিন। আওক সিরিজের পরবর্তী অংশটি পড়তে ভুলবেন না যেখানে আমি আপনাকে যৌগিক প্রকাশের মাধ্যমে নিয়ে যাব।