জিএনইউ গ্রেপের এর এক্স বিকল্পের আসল উদ্দেশ্য কী এবং কেন এটি অনিবন্ধিত?


58

পড়ার মাধ্যমে এই প্রশ্নের আমি আবিষ্কার করেছি যে গনুহ আছে grepএকটি আছে -Xযা একটি আর্গুমেন্ট আশা বিকল্প। আশ্চর্যের বিষয় হচ্ছে ম্যান পেজে বা তথ্য পৃষ্ঠায় এটি উল্লেখ করা হয়নি।

উত্স কোডটি দেখে, আউটপুটটির ঠিক মাঝখানেই--help মন্তব্য রয়েছে :

/* -X is deliberately undocumented.  */

আরও খুঁজছি, এটা মনে হয় যে -X matcherবিকল্প regexp জন্য ব্যবহৃত সার্চ ইঞ্জিন সেট করে , matcherহচ্ছে এক grep , egrep, fgrep, awk, gawk, posixawkএবং perl(সংস্করণ 2.25 এর হিসাবে)।

যারা মান কিছু কঠোরভাবে বিদ্যমান অপশন অভিন্ন (যথা হয় grep -G, grep -E, grep -Fএবং grep -P)। অন্যদিকে, তিনটি awkভেরিয়েন্টের কোনও উপযুক্ত বিকল্প নেই।

কেউ কি জানেন যে এই বিকল্পটির আসল উদ্দেশ্য কী, বিশেষত একটি awkরেজিএক্সএক্স ইঞ্জিনের সাথে? কেউ আমাকে বলতে পারেন কেন এটি উদ্দেশ্যমূলকভাবে নথিভুক্ত করা হয়নি?


6
আকর্ষণীয় আবিষ্কার! আমি সন্দেহ করি যে এটি অনিবন্ধিত রেখে যাওয়ার উদ্দেশ্যটি যাতে তারা ইচ্ছামত এবং বিজ্ঞপ্তি ছাড়াই ভবিষ্যতের সংস্করণগুলি থেকে এটিকে সরাতে নির্দ্বিধায় করতে পারে। একটি জিএনইউ নথিভুক্ত বিকল্পের আর একটি উদাহরণ -Eজিএনইউ সেডের জন্য যা বিএসডি সেডের সাথে সামঞ্জস্যতা সরবরাহ করে। (আমি -E
পসিএক্স

3
আমি @ জন ১০২৪ এর সাথে একমত, যদিও একমাত্র ব্যক্তি যিনি সুনির্দিষ্টভাবে উত্তর দিতে পারেন তিনি হলেন স্টেপান কাসাল, যিনি February ফেব্রুয়ারী ২০০ 2005- -Xএ ইচ্ছাকৃতভাবে বিনা প্রতিবেদনে নথিভুক্ত করেছেন। (আপনি যদি তাকে জিজ্ঞাসা করতে চান তবে তার ইমেল ঠিকানাটি
ওয়াইল্ডকার্ড

3
আমি এইটিকে গিট ইতিহাসের মাধ্যমে সন্ধান করার চেষ্টা করেছি, তবে দেখা যাচ্ছে যে গ্রেপের প্রথম গিট কমিট করার আগে এটি যুক্ত হয়েছিল (মঙ্গলবার 3 নভেম্বর 21:38:52 1998 থেকে 06b9f7e683e7650804cadd9a4c5cf6bff6c89625 এটি উপস্থিত ছিল)। সম্ভবত তারা পূর্ববর্তী ভিসিএসকে গিট হিসাবে আমদানি করেছিল, স্পষ্টতই এটি গিটকে পূর্বাভাস দেয়।
ডারোবার্ট


3
... তবে ১.6 এ নয় যা আমি oldlinux.org/Linux.old/distributions/TAMU/TAMU-1.0D/src/tar/…পেয়েছি (দ্রষ্টব্য: আমি এই কোডটির সত্যতা যাচাই করার জন্য কোনও চেষ্টা করেছি) এটি
তারিখটিতে

উত্তর:


67

এর উদ্দেশ্য হ'ল জিএনইউতে প্রয়োগ করা বিভিন্ন ম্যাথারগুলিকে grepএক রূপে বা অন্য কোনও রূপে অ্যাক্সেস সরবরাহ করা , বিশেষত এডাব্লু কে ম্যাচারগুলি যা অন্যথায় উপলব্ধ নয়, সম্ভবত পরীক্ষার উদ্দেশ্যে ( বাগ 16381 যা এতে gawkএবং posixawkম্যাথারগুলি যুক্ত করার বিষয়ে আলোচনা করে দেখুন )।

তবে এটি বর্তমানে বগি, এটি কারণ হিসাবে এটি নথিভুক্ত হিসাবে নথিভুক্ত করা হয়েছে :

থু, জানুয়ারী, 27, 2005-এ 04:56:04 পিএম -0500 এ, চার্লস লিভার্ট লিখেছেন:
> '-X' বিকল্পটি এবং বিশেষত "awk" ম্যাচারে
> ("-এক্স অ্যাজক") এর সাথে এর ব্যবহারটি অনথিভুক্ত।

অনুগ্রহ করে এটি ছেড়ে দিন।

এটি এক্স এক্স এর পাশাপাশি কোনও নতুন কার্যকারিতা সরবরাহ করে না।

এবং awk regexps বাস্তবায়ন নিখুঁত নয়, আমি মনে করি।

নতুন জিএনইউ রেজেক্স এডাব্লুকে স্টাইল সিনট্যাক্স সেট করার কিছু উপায়কে বোঝায়, হ্যাঁ। তবুও গোক সরাসরি এটিকে ব্যবহার করে না: এটি প্রথমে রেজেক্সকে পার্স করে।

বিশেষত, awk regexps এস্কেপ সিকোয়েন্সগুলি মঞ্জুরি দেয় \ NNN, যেখানে NNN একটি অক্টাল মান। সুতরাং / \ 040 / ম্যাথ স্পেস। গ্রেপ-এক্স অবাক এইটিকে সমর্থন করে না বলে মনে হচ্ছে।

আমি আশঙ্কা করছি যে regex.c এই এস্কেপ ক্রমগুলি সমর্থন করে না।

আমাদের নিশ্চিত করতে হবে যে আমরা এই বৈশিষ্ট্যটি নথিভুক্ত করার (এবং এইভাবে সমর্থন) সিদ্ধান্ত নেওয়ার আগে রেজেক্সগুলি অ্যাডাব্লিক রেজেক্সগুলির সাথে পুরোপুরি সামঞ্জস্যপূর্ণ।

আমি মনে করি এটি কষ্টের মতো নয়।

Stepan

একটি ফলোআপ মন্তব্য যোগ করার জন্য জিজ্ঞাসা করেছিল, এবং -Xবিকল্পটিতে কিছুটা আরও পটভূমি সরবরাহ করেছে :

আমার নিজের প্রবণতাটি হ'ল সম্পূর্ণ-এক্স সরিয়ে ফেলার পরামর্শ দেওয়া। আমার সন্দেহ হয় এটি মূল লেখক মূলত পরীক্ষার উদ্দেশ্যে যুক্ত করেছিলেন। এটি যদি থাকতে চলেছে তবে কমপক্ষে একটি মন্তব্য যুক্ত করুন।

/* -X is undocumented on purpose. */

সমাধান করা ইস্যু নিয়ে ভবিষ্যতে আলোচনা এড়াতে।

আর্নল্ড

যা তারপরেই স্টেপান করল


3
চমৎকার প্রত্নতাত্ত্বিক কাজ, আপনাকে ধন্যবাদ স্টিফেন।
xhienne

2
ধন্যবাদ :-) দুর্ভাগ্যক্রমে ট্রেইল গ্রেপ ২.০ এ থামে; আমি অনুভূতিটি পেয়েছি যে এটি সংস্করণটি চালু হয়েছিল -X, সম্ভবত ডিএফএ পুনর্লিখনের পার্শ্ব-প্রতিক্রিয়া হিসাবে, তবে চেঞ্জলগটি বিশদে সংক্ষিপ্ত।
স্টিফেন কিট

7
"সমাধান হওয়া ইস্যু নিয়ে ভবিষ্যতে আলোচনা এড়ানোর জন্য।" কীভাবে কাজ হবে? ;)
ব্রক অ্যাডামস

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