এর ব্যবহার কী? গ্রেপ কমান্ডে .. এবং ব্যবহারিক ব্যবহার


4

আমি প্রকৃত ব্যবহারিক ব্যবহারের সন্ধান করার চেষ্টা করেছি? যেমন উদাহরণস্বরূপ "egrep a? ফাইলের নাম" তবে কোনও সন্ধান করতে সক্ষম হয় নি .. এটি সমস্ত ফলাফল প্রত্যাখ্যান করে ..

সুতরাং, দয়া করে আমাকে সাহায্য করুন যেখানে আমি egrep এর আসল ব্যবহার জানতে পারি? কমান্ড ..

আমি যদি 'এ?' ব্যবহার করি তবে এটি সমস্ত ফলাফল অর্থাৎ স্ট্রিং বা রেখার ফলাফল দেয়। যার মধ্যে 0 এ, 1 এ, 2 এ এবং আরও রয়েছে ... অর্থাত্ আমি এর ব্যবহারটি খুঁজে পাচ্ছি না ..

ধন্যবাদ

উত্তর:


8

বলুন আপনি কোনও স্ক্রিপ্টে এই জাতীয় সংখ্যা নির্ধারণের এক্সপ্রেশনগুলি মিলাতে চেয়েছিলেন:

x=1234

যেখানে কিছু নম্বর নেতিবাচক এবং একটি বিয়োগ চিহ্ন রয়েছে:

x=-5678

আপনি এটি ব্যবহার করতে পারেন:

grep -E "x=-?[0-9]+" *

প্রশ্ন চিহ্নটি বিয়োগকে alচ্ছিক করে তুলেছে।

(আমি মনে করি না যে প্লেইন গ্রেপ সমর্থন করে ?বা +তাই, -E)


আমি বুঝতে পেরেছি .. অনেক অনেক ধন্যবাদ .. এছাড়াও 'এগ্রিপ এ' কী করে? ফাইলের নাম 'আসলে করবে .. যদি আপনি এটি কথায় রাখতে পারেন ..

3
@ আরবি: egrep a? filenameপ্রতিটি লাইনের সাথে মিলবে। এটি নিজস্বভাবে কার্যকর নয়।
রিচিহিন্ডল

2
নিয়মিত জিএনইউ গ্রেপ (-E ছাড়া) সমর্থন করে ?তবে আপনাকে অবশ্যই এড়িয়ে যেতে হবে। echo "color" | grep "colou\?r" ফিরে আসা উচিত color
ম্যাট নিনিজার

6

?বেসিক grepকোনও মেটাচার্যাক্ট নয়, সুতরাং আপনি যদি গ্রেপ করছেন তবে আপনি a?আসলে aএকটি প্রশ্ন চিহ্ন অনুসরণ করার জন্য গ্রেপিং করছেন ।

যদি আপনি egrep(ওরফে grep -E) ব্যবহার করে থাকেন তবে উত্তরগুলি ইঙ্গিত করে যে ?শূন্য বা পূর্বের সত্তার রিজেক্স মেটাচার্যাক্টারের এক-একটি correct


হ্যাঁ স্যার, আপনি ঠিকই বলেছেন .. তবে আমার সন্দেহটি এখানেই নিহিত, আগের চরিত্রটি 0 বা 1 বার ঘটানো সর্বদা সত্য হবে .. সুতরাং এর ব্যবহার কী? তাহলে ,, আমার জানা দরকার এটি কোথায়? দরকারী .. অন্যথায় আমাদের একই ব্যবহার করার জন্যও * ব্যবহার করতে হবে, কারণ এটি একই ফলাফলকে ফিরিয়ে দিচ্ছে।

2
হ্যাঁ, a?এটি অনুসন্ধান করা নিজেই অযৌক্তিক কারণ এটি সর্বদা মিলবে। এটি কেবলমাত্র বৃহত্তর রেইগেক্সের অংশ হিসাবে বোঝায়।
বিশৃঙ্খলা

আপনি কি এই জাতীয় কোনও রেগ-এক্সপ্রেশনের উদাহরণ দিতে পারেন .. যেখানে আমি এর একটি ব্যবহার জানতে পারি? ..

তার মানে কি? = "" বা "ক"। এক্ষেত্রে সবকিছু মিলছে ""। আপনি একটি অক্ষরের এক বা শূন্য অক্ষরের সন্ধান করছেন যা কোনও কিছুর সাথেও মিলবে।

কার্যকরভাবে আমার প্রশ্নটি জানাতে আমি কেবল একটি উদাহরণ দিয়েছি .. তবে আমার যা প্রয়োজন তা হল "egrep?" ব্যবহারের বাস্তব প্রয়োগ implementation এমন কোনও রেগ-এক্সপ্রেস রয়েছে যেখান থেকে আমি এর আসল ব্যবহারটি খুঁজে পেতে পারি ..

4

এটি একটি একক অক্ষর অনুসন্ধান, এর আগে একটি বা শূন্যের অক্ষরের সাথে মিল রয়েছে।

নোট: আপনি পালাতে হবে? \ প্রথম: \ ?. ব্যবহার করে


ডাউনটা কেন? : /

আমার ডাউনভোট নয়, তবে আমি মনে করি না যে আপনার উত্তরটি কোনও অর্থবোধ করে। আপনার রেজেক্স i-?কিন্তু আপনি মিলের কথা বলছেন i+j। এবং যদি আপনি বলতে চাচ্ছেন i+?তবে তা এখনও মিলবে i++। দ্য ?সীমিত না কি আসে পরে ম্যাচ, তাই i+?আনন্দের সাথে ম্যাচ হবে i++
রিচিহিন্ডল

1

রেজেক্সে কথা বলি, ক? অর্থ 0 বা 1 'এ এর। সুতরাং আপনি যদি এর মধ্যে 0 বা 1 এর একটি স্ট্রিং অনুসন্ধান করেন তবে আপনি সবকিছু পাবেন। এমন জায়গা যেখানে এটি কার্যকর হবে তা হ'ল ধনাত্মক পূর্ণসংখ্যার সাথে মেলে:

/^\+?\d+$/

যা হিসাবে খেলে

^: beginning of line
\+: + sign
?: 0 or 1 of previous character
\d: digit
+: one or more of previous character
$: end of line

এবং উভয় মেলে দিবে +123এবং456

কটাক্ষপাত আছে regular-expressions.info Regex এর ব্যবহার আরো তথ্যের জন্য।

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