সুবিধাগুলি কি কি, যদি egrep উপর কোন গ্রেপ হয়


4

আমি কেবল প্রোগ্রামগুলির গ্রেপ পরিবার সম্পর্কেই শিখছি, এবং আমার কাছে মনে হয় যে এগ্রিপ গ্রেপের চেয়ে কঠোরতর - এটি গ্রেপ করতে পারে এমন সমস্ত কিছু করতে পারে তবে আরও অনেক কিছু। আমি কি ভূল? শুধু প্রতিবারই কেন এগ্রিপ ব্যবহার করবেন না?

সম্পাদনা: আমি জানি যে গ্রেপ-ই এড্রেপ হিসাবে একই। আমি জানতে চাই কেন গ্রেপ-ই গ্রেপ-এর জন্য ডিফল্ট মোড নয়, কারণ এটি কেবল তার ব্যবহার্যতা প্রসারিত করে এবং এর কোনও স্পষ্ট ত্রুটি নেই।

উত্তর:


16

প্রযুক্তিগত উত্তর: tradition egrepতিহ্যগতভাবে, অভ্যন্তরীণভাবে grepএকটি ডিস্ট্রিমেন্টিক সসীম অটোমেটন (ডিএফএ) ব্যবহার করা হয়েছে, যখন একটি অ-ডিস্ট্রিমেন্টিক সসীম অটোমেটন (এনএফএ) ব্যবহার করা হয়েছিল। আজকাল, জিএনইউ grepএবং egrepএকটি হাইব্রিড এনএফএ / ডিএফএ পদ্ধতি গ্রহণ করুন।

ফ্রেডেলের বই মাস্টারিং নিয়মিত এক্সপ্রেশন অনুসারে , আপনার egrep(উদাহরণস্বরূপ) একটি এনএফএ ইঞ্জিন রয়েছে কিনা বা এটিতে ডিএফএ ইঞ্জিন রয়েছে কিনা তা আবিষ্কার করতে:

echo =XX========================================= | egrep 'X(.+)+X'

ফ্রেইডল (p.147) বলেছেন:

এটি শেষ করতে যদি দীর্ঘ সময় লাগে তবে এটি একটি এনএফএ ... এটি দ্রুত শেষ হলে এটি ডিএফএ বা কিছু উন্নততর অপ্টিমাইজেশন সহ একটি এনএফএ। এটি কোনও স্ট্যাকের আওতা বা দীর্ঘ ম্যাচ বাতিল হওয়া সম্পর্কে কোনও সতর্কতা বার্তা প্রদর্শন করে? যদি তা হয় তবে এটি একটি এনএফএ।

ফ্রেডল এনএফএ ইঞ্জিনকে "রেজেক্স-ডাইরেক্টেড" এবং ডিএফএকে "পাঠ্য-নির্দেশিত" হিসাবে বর্ণনা করেছেন। পার্থক্যের বিশদটি তাঁর বইয়ের পরবর্তী পৃষ্ঠা পৃষ্ঠা 153 থেকে বর্ণনা করা হয়েছে।

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

ফ্রিডেলের মতে, জিএনইউ grepসম্ভব হলে একটি ডিএফএ ব্যবহার করে এবং ব্যাক-রেফারেন্সগুলি ব্যবহার করার সময় এনএফএতে ফিরে আসে।


কোড স্নিপেটে, এটি 'egrep' বা 'গ্রেপ' হওয়ার কথা? আপনি যা লিখেছেন তার দ্বারা, "egrep = DFA", সুতরাং এটি "egrep! = এনএফএ" হিসাবে শেষ করতে দীর্ঘ সময় নেওয়া উচিত নয়।
নেভিন উইলিয়ামস

আমি মনে করি ফ্রেডেলের অর্থ উদাহরণটি দেখায় যদি egrepএই ক্ষেত্রে (বা grep, আপনি যদি প্রতিস্থাপন egrepকরেন grep) কোনও ডিএফএ বা এনএফএ ব্যবহার করছেন। প্রদত্ত, যেমন অন্যান্য উত্তরে উল্লেখ করা হয়েছে, একই সরঞ্জামের বিভিন্ন বাস্তবায়ন বিভিন্ন রেগেক্স ইঞ্জিন ব্যবহার করতে পারে, একটি নির্দিষ্ট সরঞ্জাম traditionতিহ্যগতভাবে একটি নির্দিষ্ট ইঞ্জিন ব্যবহার করেছে এমন অর্থ এই নয় যে সেই সরঞ্জামটির একটি নির্দিষ্ট বাস্তবায়ন অগত্যা একই ইঞ্জিন ধরণের ব্যবহার করে।
সাইমন

2

"পরিবার" হ'ল প্রত্যেকে বিভিন্ন grepবিকল্পের (থেকে man grep) শর্টকাট :

তদতিরিক্ত , তিনটি বৈকল্পিক প্রোগ্রাম যেমন : rep , fgrep এবং rgrep উপলব্ধ। উদাহরণস্বরূপ গ্রেপ- সমান । fgrep হিসাবে একই , grep -Frgrep হিসাবে একই , grep -r । যেমন egrep বা fgrep হিসাবে সরাসরি প্রার্থনা হ্রাস করা হয়, তবে historical তিহাসিক অ্যাপ্লিকেশনগুলি যা অবিস্মরণীয়ভাবে চালানোর জন্য তাদের উপর নির্ভর করে allow

   -E, --extended-regexp
          Interpret  PATTERN  as  an  extended   regular
          expression (ERE, see below).  (-E is specified
          by POSIX.)

   -F, --fixed-strings
          Interpret PATTERN as a list of fixed  strings,
          separated  by  newlines, any of which is to be
          matched.  (-F is specified by POSIX.)

   -R, -r, --recursive
          Read   all   files   under   each   directory,
          recursively;  this  is  equivalent  to  the -d
          recurse option.

1

egrepকেবলমাত্র একটি শর্টকাট grep -Eযার জন্য বর্ধিত নিয়মিত অভিব্যক্তিগুলির ব্যবহারের অনুমতি দেয়। এর জন্য ম্যান পৃষ্ঠাটি দেখুন egrep- এটি গ্রেপ, উদাহরণস্বরূপ, fgrep ইত্যাদির মতো প্যাটার্ন অনুসন্ধান ফাংশনের "পরিবার" এর জন্য ম্যান পৃষ্ঠাটি টানবে

ব্যবহার হিসাবে, আপনি যদি বর্ধিত নিয়মিত এক্সপ্রেশন ব্যবহার করেন তবে টাইপিং egrepসর্বদা টাইপিংয়ের চেয়ে দ্রুততর হতে পারে grep -E


0

এর অপূর্ণতা egrepহ'ল যদি আপনার অতিরিক্ত সক্ষমতা প্রয়োজন না হয় তবে এর রেজেক্সটি কিছুটা জটিল এবং কম সুবিধাজনক। কখনও কখনও, আরও শক্তি ভাল না যদি এটি ব্যবহার করা সহজ এবং সহজ না হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.