লিনাক্সে গ্রেপ, এগ্রেপ এবং এফগ্রিপের মধ্যে কী পার্থক্য রয়েছে?


ইউনিক্স-এর মতো সিস্টেমে একটি বিখ্যাত অনুসন্ধান সরঞ্জাম যা ফাইল বা লাইন বা ফাইলের একাধিক লাইন হ'ল গ্রাইপ ইউটিলিটি হ'ল যে কোনও কিছুই অনুসন্ধানের জন্য ব্যবহার করা যেতে পারে। এটি কার্যক্ষমতায় অত্যন্ত বিস্তৃত যা এটিকে সমর্থন করে এমন বৃহত সংখ্যক বিকল্পগুলির জন্য দায়ী করা যেতে পারে: স্ট্রিং প্যাটার্ন ব্যবহার করে অনুসন্ধান করা, বা রেগ-এক্স প্যাটার্ন বা পার্ল ভিত্তিক রেজি-এক্স ইত্যাদি etc.

বিভিন্ন পরিবর্তিত কার্যকারিতার কারণে এর গ্রিপ, এগ্রিপ (এক্সটেন্ডেড জিআরইপি), এফগ্রিপ (ফিক্সড জিআরইপি), পিগ্রিপ (প্রসেস জিআরইপি), আরগ্রিপ (রিকার্সিভ জিআরইপি) ইত্যাদি সহ বিভিন্ন রূপ রয়েছে তবে এই রূপগুলির মূল গ্রেপের সাথে সামান্য পার্থক্য রয়েছে যা তাদের তৈরি করেছে them নির্দিষ্ট এবং বিভিন্ন কার্যক্রমে বিভিন্ন লিনাক্স প্রোগ্রামারদের দ্বারা ব্যবহৃত এবং জনপ্রিয়।

মূল বিষয় যা তদন্ত করতে বাকি রয়েছে তা হ'ল তিনটি প্রধান রূপের মধ্যে কী কী পার্থক্য রয়েছে ‘যেমন 'গ্রেপ', 'এগ্রিপ' এবং গ্রেপের 'এফগ্রিপ' যা লিনাক্স ব্যবহারকারীদের প্রয়োজন অনুসারে একটি বা অন্য সংস্করণ চয়ন করে।

গ্রেপের কিছু বিশেষ মেটা-অক্ষর

  1. + - পূর্ববর্তী অক্ষরের এক বা একাধিক ঘটনার সমান
  2. ? - এটি পূর্ববর্তী চরিত্রের প্রায় 1 পুনরাবৃত্তি বোঝায়। পছন্দ করুন: a? 'a' বা 'আ' এর সাথে মেলে।
  3. ( - বিকল্প এক্সপ্রেশন শুরু করুন।
  4. ) - বিকল্প অভিব্যক্তিটির সমাপ্তি
  5. | - উভয়ই | দ্বারা বিভক্ত প্রকাশের সাথে মিলছে। পছন্দ: “(a | b) cde” 'abcde' বা 'bbcde' এর সাথে মেলে
  6. { - এই মেটা-চরিত্রটি ব্যাপ্তি নির্দিষ্টকরণের সূচনা নির্দেশ করে। পছন্দ করুন: "a {2}" "ia" ফাইলের সাথে "aa" এর সাথে মেলে।
  7. } - এই মেটা-চরিত্রটি ব্যাপ্তি নির্দিষ্টকরণের শেষ নির্দেশ করে

গ্রেপ, উদাহরণস্বরূপ এবং fgrep এর মধ্যে পার্থক্য

গ্রেপ, egrep এবং fgrep মধ্যে কিছু প্রধান পার্থক্য নীচে হিসাবে হাইলাইট করা যেতে পারে। উদাহরণগুলির এই সেটটির জন্য আমরা ফাইলটি ধরে নিচ্ছি যার উপর অপারেশন করা হচ্ছে:

গ্রেপ বা গ্লোবাল রেগুলার এক্সপ্রেশন প্রিন্ট হ'ল ইউনিক্সের মতো সিস্টেমে মূল অনুসন্ধান প্রোগ্রাম যা কোনও ফাইল বা ফাইলের তালিকা বা যে কোনও কমান্ডের এমনকি আউটপুটগুলিতে যে কোনও ধরণের স্ট্রিং অনুসন্ধান করতে পারে।

এটি অনুসন্ধানের ধরণ হিসাবে সাধারণ স্ট্রিং বাদে বেসিক নিয়মিত এক্সপ্রেশনগুলি ব্যবহার করে। বেসিক নিয়মিত এক্সপ্রেশন (বিআরই) এ, মেটা-অক্ষর যেমন: {,} , (,) , | , + , ?

এছাড়াও, গ্রেপ কোনও স্ট্রিং বা নিয়মিত এক্সপ্রেশন দ্রুত অনুসন্ধানের জন্য বায়ার-মুর অ্যালগরিদম ব্যবহার করে।

$ grep -C 0 '(f|g)ile' check_file
$ grep -C 0 '\(f\|g\)ile' check_file

এখানে যেমন, () এবং | ছাড়াই কমান্ডটি চালানো হয় তখন এটি সম্পূর্ণ স্ট্রিং অর্থাৎ "(এফ | জি) আইলে" ফাইলটিতে। কিন্তু যখন বিশেষ অক্ষরগুলি পালিয়ে যায়, তখন তাদের স্ট্রিংয়ের অংশ হিসাবে বিবেচনা করার পরিবর্তে গ্রেপ তাদেরকে মেটা-অক্ষর হিসাবে বিবেচনা করে এবং "ফাইল" বা "গিল" শব্দের সন্ধান করে ফাইলের মধ্যে

Egrep বা গ্রেপ -E গ্রেপ বা বর্ধিত গ্রেপের আরেকটি সংস্করণ। গ্রাপের এই সংস্করণটি দক্ষ এবং দ্রুত যখন এটি নিয়মিত এক্সপ্রেশন প্যাটার্নটি অনুসন্ধান করতে আসে যেমন এটি মেটা-চরিত্রগুলিকে যেমন ব্যবহার করে তেমন আচরণ করে না এবং গ্রাপের মতো স্ট্রিং হিসাবে তাদের বিকল্প দেয় না, এবং তাই আপনি এগুলিকে পালানোর ভার থেকে মুক্তি পান গ্রেপ ইন এটি ERE বা বর্ধিত নিয়মিত এক্সপ্রেশন সেট ব্যবহার করে।

উদাহরণস্বরূপ, আপনি যদি মেটা-অক্ষরগুলি থেকে অব্যাহতি না পান, এটি তাদের বিশেষ চরিত্র হিসাবে বিবেচনা করে এবং স্ট্রিংয়ের অংশ হিসাবে বিবেচনা না করে তাদের বিশেষ অর্থের পরিবর্তে তাদের বিকল্প হিসাবে চিহ্নিত করে।

$ egrep -C 0 '(f|g)ile' check_file
$ egrep -C 0 '\(f\|g\)ile' check_file

এখানকার মতো, যখন মেটা-অক্ষরগুলি এড়ানোর আগে এ কোডরেপগুলি এই অক্ষরের অর্থটি বোঝায় তখন "ফাইল" স্ট্রিংটি অনুসন্ধান করেছিল। তবে, যখন এই চরিত্রগুলি পালানো হয়েছিল, তবে এড্রেপ তাদের সাথে স্ট্রিংয়ের অংশ হিসাবে বিবেচনা করেছিল এবং ফাইলের সম্পূর্ণ স্ট্রিং "(f | g) ile" অনুসন্ধান করেছিল।

এফগ্র্রেপ বা ফিক্সড গ্রেপ বা গ্রেপ-এফ গ্রেপের আরও একটি সংস্করণ যা নিয়মিত প্রকাশের পরিবর্তে পুরো স্ট্রিংটি অনুসন্ধান করার সময় এটি অনুসন্ধানে দ্রুততর হয় কারণ এটি নিয়মিত এক্সপ্রেশনকে স্বীকৃতি দেয় না, কোনও মেটা-চরিত্রও নয়। যে কোনও সরাসরি স্ট্রিং অনুসন্ধানের জন্য, এটি গ্রেপের সংস্করণ যা নির্বাচন করা উচিত।

Fgrep সম্পূর্ণ স্ট্রিং অনুসন্ধান করে এবং এমনকি পালানো বা পালানো না হলেও নিয়মিত অভিব্যক্তির অংশ হিসাবে বিশেষ অক্ষরগুলিও চিনতে পারে না।

$ fgrep -C 0 '(f|g)ile' check_file
$ fgrep -C 0 '\(f\|g\)ile' check_file

যেমন, যখন মেটা-অক্ষরগুলি এড়ানো যায় নি, fgrep ফাইলটিতে সম্পূর্ণ স্ট্রিং "(f | g) আইল" অনুসন্ধান করেছিল এবং যখন মেটা-অক্ষরগুলি পালিয়ে গেছে, তখন fgrep কমান্ড অনুসন্ধান করেছিল “\ (f\| g \) ile” সমস্ত অক্ষর ফাইলটিতে রয়েছে।

আমরা ইতিমধ্যে গ্রেপ কমান্ডের কিছু ব্যবহারিক উদাহরণ কভার করেছি যে আপনি লিনাক্সে গ্রেপ কমান্ড থেকে আরও কিছু পেতে চাইলে আপনি সেগুলি এখানে পড়তে পারেন।

উপসংহার

উপরে তুলে ধরা হচ্ছে ‘গ্রেপ’, ‘এগ্রেপ’ এবং ‘এফগ্রিপ’ এর মধ্যে পার্থক্য। ব্যবহৃত নিয়মিত এক্সপ্রেশন এবং নির্বাহের গতিতে আলাদা পার্থক্য ছাড়াও বিশ্রামের কমান্ড লাইন প্যারামিটারগুলি গ্রেপ এর তিনটি সংস্করণের জন্য এবং এমনকি "এসগ্রিপ" বা "এফগ্রিপ", "গ্রেপ-ই" বা "গ্রেপ - এফ "ব্যবহার করার পরামর্শ দেওয়া হয়।

আপনি যদি গ্রেপের এই তিনটি সংস্করণের মধ্যে অন্য কোনও পার্থক্য খুঁজে পান তবে সেগুলি আপনার মন্তব্যে উল্লেখ করুন।


সমস্ত অধিকার সংরক্ষিত. © Linux-Console.net • 2019-2024