यह BSD grep परिणाम GNU grep से भिन्न क्यों है?


13

मेरा कंप्यूटर macOS 10.12.3 पर चल रहा है और मैं grep2.5.1-FreeBSD संस्करण के साथ सिस्टम-इंस्टॉल की गई उपयोगिता का उपयोग कर रहा हूं ।

विभिन्न रेगेक्स का परीक्षण करते समय मुझे मिलने वाले ये आउटपुट हैं:

स्क्रीनशॉट

लेकिन अगर मैं GNU grep (संस्करण 2.25) का उपयोग करके इन्हें चलाता हूं तो मुझे निम्नलिखित मिलते हैं:

स्क्रीनशॉट

जीएनयू की पकड़ मुझे और बीएसडी की गलत लगती है, नहीं? वे अलग क्यों हैं? मुझे समझ में नहीं आता है कि जब बीएसजी का जीआरपी "ए" से मेल खा रहा है, जब रेगेक्स निर्दिष्ट करता है कि उसे लाइन की शुरुआत का पालन करना चाहिए।


2
बग के रूप में पहले व्यवहार की रिपोर्ट करने के लिए स्वतंत्र महसूस करें।
शनि कत्सुरा

1
आप देखेंगे कि echo 'bababa' | grep -E '^(a|b)'सब लाल है। और आपके साथ भी यही समस्या होगी -o। मुझे लगता है, grepकई मैचों के लिए लग रहा है, लेकिन दूसरे मैच और ओवर के लिए, यह ananaREG_NOTBOL ध्वज को पारित किए बिना पिछली बार (इसलिए आपके मामले में दूसरी बार) से मेल खाते के दाईं ओर के लिए regexp को लागू करता है । इसे भी देखेंecho banana | grep -Eo '^ban|^ana$'
स्टीफन चेजालस

2
@JdeBP, मेरे OS X पर, केवल GNU संस्करणों के साथ संगतता के लिए प्रदान किए गए लंबे विकल्पों का उल्लेख करते हुए GNU का उल्लेख करते हुए मैन पेज के grepरूप में पहचान करता है grep (BSD grep) 2.5.1-FreeBSD। इसके अलावा, कोई कॉपीराइट नोटिस या GPL (या FSF) का उल्लेख नहीं करता है। यदि इसका GNU उपयोग के साथ इतिहास है, तो यह बताना मुश्किल है।
ilkachachu

हम दिखा रहे हैं कि यह कैसे भ्रामक है। (-:: grepडिकेड मून के जवाब में चर्चा की गई है कि इतने सारे लोग सही पहचान कर रहे हैं grep (GNU grep) 2.5.1-FreeBSD(जैसा कि बग चर्चा में देखा जा सकता है), एक एफएसएफ कॉपीराइट नोटिस है, और निश्चित रूप से जीएनयू है grep। फ्रीबीएसडी कॉल bsdgrepक्या है जो ओपनबीएसडी है। कॉल grepऔर बीएसडी है grep, जिसमें कोई --colorविकल्प नहीं है, जिसमें फ्रीबीएसडी वेरिएंट है। जो कि आइडेंटिफाई करता है grep (BSD grep) 2.5.1-FreeBSD, और विडंबना यह है कि बग चर्चा में एक व्यक्ति ने सुझाव दिया कि फ्रीबीएसडी स्विच grep
जेडेबीपी

जवाबों:


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.