গ্রেপ-ই এবং গ্রেপ-ই বিকল্পের মধ্যে পার্থক্য কী?


34

আমি grep -eএবং এর মধ্যে পার্থক্য বুঝতে চেষ্টা করছি grep -E। এখন থেকে grep manpageআমি পেয়েছি:

-ই, - এক্সটেন্ডেড-রেজিপ্সপ

PATTERN কে বর্ধিত নিয়মিত অভিব্যক্তি হিসাবে ব্যাখ্যা করুন (নীচে দেখুন)।

-e PATTERN, --regexp = PATTERN

প্যাটার্নটি প্যাটার্ন হিসাবে ব্যবহার করুন; শুরুতে নিদর্শনগুলি রক্ষা করতে দরকারী -

উপরের ব্যাখ্যাটি আমার কাছে কোনও অর্থবোধ করে না।

সুতরাং, কেউ examplesকি আমাকে দু'জনের মধ্যে পার্থক্য কী এবং কখন কোন বিকল্প ব্যবহার করবেন তা ব্যবহার করে এটি ব্যাখ্যা করতে পারেন।

পিএস: সংস্করণ: গ্রেপ (জিএনইউ গ্রেপ) 2.10



3
-eযখন কোনও রেজেক্স ড্যাশ দিয়ে শুরু হয় তখন এর উদ্দেশ্যটি সত্যই কেবল নিস্তেজিত করা। সুতরাং grep ---fooদেয় unrecognized option: ---fooকিন্তু আপনি বলতে পারেন grep -e ---fooরেগুলার এক্সপ্রেশন জন্য grep ---foo
ট্রিপলি

উত্তর:


29

-eআপনি যে প্যাটার্নটির সাথে ম্যাচ করতে চান তা ইঙ্গিত করার জন্য কঠোরভাবে পতাকা। -Eআপনার নির্দিষ্ট কিছু অক্ষর থেকে বাঁচতে হবে কিনা তা নিয়ন্ত্রণ করে।

man grep-Eএটি আরও কিছুটা ব্যাখ্যা করে:

   Basic vs Extended Regular Expressions
   In basic regular expressions the meta-characters ?, +, {, |, (, and ) lose their special meaning; instead use the backslashed versions \?, \+, \{, \|, \(, and \).

   Traditional  egrep  did  not  support  the  {  meta-character, and some egrep implementations support \{ instead, so portable scripts should avoid { in grep -E patterns and should use [{] to match a
   literal {.

   GNU grep -E attempts to support traditional usage by assuming that { is not special if it would be the start of an invalid interval specification.  For example, the command grep -E '{1' searches for
   the two-character string {1 instead of reporting a syntax error in the regular expression.  POSIX.2 allows this behavior as an extension, but portable scripts should avoid it.

2
সুতরাং এই কারণেই যখন আমি echo "hello" | grep -o -e 'h|l'কোনও আউটপুট পাই না কারণ |এর বিশেষ অর্থ হারিয়ে যায় এবং যখন আমি echo "hello" | grep -o -E 'h|l'পছন্দসই আউটপুট পাই।

2
হ্যাঁ। echo "hello" | grep -o -e 'h' -e 'l'আপনি যদি -Eএই ক্ষেত্রে দূরে টস করতে চান তবে কাজ করবে ।
হাফিচুক

3
grep -e -o 'h|l'আক্ষরিক ম্যাচ হবে h|lযখন grep -e -o 'h\|l'ম্যাচ হবে hবা lএবং -E সঙ্গে এটি বিপরীত এর
Nahuel Fouilleul

@ অর্ণি এটি দুর্ভাগ্যজনক যে এসই সাইটের মধ্যে আপনাকে "ফিচার" অনুসরণ করতে আপনার 200+ খ্যাতি দরকার ...
হাফিচুক

5

এছাড়াও grep -eঅনুসন্ধানের জন্য বেশ কয়েকটি স্ট্রিং ব্যবহার করার অনুমতি দেয়: 'grep -e 'abc' -e 'def' -e '123'এই তিনটি স্ট্রিংয়ের abcপাশাপাশি একইভাবে defএবং সন্ধান করবে 123

এটি grep 'abc\|def\|123'যেখানে \|দাঁড়ায় ঠিক তার মতোই কাজ করে orতবে এটি পড়ার জন্য আরও পরিষ্কার হতে পারে।

যেহেতু এখানে সর্বাধিক গুরুত্বপূর্ণ তথ্য grep -Eইতিমধ্যে ব্যাখ্যা করা হয়েছে, আমি কেবল এই বিষয়টিতে আমি একটি সামঞ্জস্যপূর্ণ প্রশ্নে সংক্ষেপিত যা যুক্ত করতে চাই: বাশ-এ দ্বৈত চরিত্রগুলি খুঁজে পাওয়ার জন্য নিয়মিত প্রকাশ


3

নিচে দেখ

/সম্প্রসারিত

গ্রেপ নিয়মিত এক্সপ্রেশন সিনট্যাক্সের তিনটি পৃথক সংস্করণ বোঝে: "বেসিক," "এক্সটেন্ডেড" এবং "পারল।" জিএনইউ গ্রেপ-তে, বেসিক এবং বর্ধিত বাক্য গঠনগুলির মধ্যে উপলব্ধ কার্যকারিতার মধ্যে কোনও পার্থক্য নেই। অন্যান্য বাস্তবায়নে, বেসিক নিয়মিত প্রকাশগুলি কম শক্তিশালী। নিম্নলিখিত বিবরণ বর্ধিত নিয়মিত অভিব্যক্তিগুলিতে প্রযোজ্য; প্রাথমিক নিয়মিত প্রকাশের জন্য পার্থক্যগুলি পরে সংক্ষিপ্ত করা হয়। পার্ল নিয়মিত প্রকাশগুলি অতিরিক্ত কার্যকারিতা দেয় এবং pcresyntax (3) এবং pcrepattern (3) এ নথিভুক্ত হয় তবে প্রতিটি সিস্টেমে উপলব্ধ নাও হতে পারে।

সুতরাং, আবার।

জিএনইউ গ্রেপ-তে, বেসিক এবং বর্ধিত বাক্য গঠনগুলির মধ্যে উপলব্ধ কার্যকারিতার মধ্যে কোনও পার্থক্য নেই


2
কার্যকারিতা মৌলিক এবং বর্ধিত মধ্যে একই কিন্তু সিনট্যাক্স কিছুটা ভিন্ন। মত বিশেষ অক্ষর RegExp (, ), |ইত্যাদি ব্যাকস্ল্যাশ-পলান মৌলিক regexp তাদের বিশেষ অর্থ আছে, কিন্তু না বাড়ানো মধ্যে (যেখানে তারা একটি স্ট্রিং আক্ষরিক হিসাবে গণ্য করা পলান করা প্রয়োজন) হতে প্রয়োজন
CA গুলির

1

-eঅপশনটি সবিস্তারে বর্ণনা করার জন্য । -eপ্রায়শই alচ্ছিক:

grep PATTERN

অনুরূপ

grep -e PATTERN

পূর্ববর্তী উত্তর এবং ম্যান পৃষ্ঠাগুলিতে বর্ণিত হিসাবে, একাধিক অনুসন্ধান নিদর্শন রয়েছে বা হাইফেন (-) দিয়ে শুরু হওয়া কোনও প্যাটার্ন রক্ষা করতে হবে।

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