मेरा कंप्यूटर macOS 10.12.3 पर चल रहा है और मैं grep
2.5.1-FreeBSD संस्करण के साथ सिस्टम-इंस्टॉल की गई उपयोगिता का उपयोग कर रहा हूं ।
विभिन्न रेगेक्स का परीक्षण करते समय मुझे मिलने वाले ये आउटपुट हैं:
लेकिन अगर मैं GNU grep (संस्करण 2.25) का उपयोग करके इन्हें चलाता हूं तो मुझे निम्नलिखित मिलते हैं:
जीएनयू की पकड़ मुझे और बीएसडी की गलत लगती है, नहीं? वे अलग क्यों हैं? मुझे समझ में नहीं आता है कि जब बीएसजी का जीआरपी "ए" से मेल खा रहा है, जब रेगेक्स निर्दिष्ट करता है कि उसे लाइन की शुरुआत का पालन करना चाहिए।
2
बग के रूप में पहले व्यवहार की रिपोर्ट करने के लिए स्वतंत्र महसूस करें।
—
शनि कत्सुरा
आप देखेंगे कि
—
स्टीफन चेजालस
echo 'bababa' | grep -E '^(a|b)'
सब लाल है। और आपके साथ भी यही समस्या होगी -o
। मुझे लगता है, grep
कई मैचों के लिए लग रहा है, लेकिन दूसरे मैच और ओवर के लिए, यह anana
REG_NOTBOL ध्वज को पारित किए बिना पिछली बार (इसलिए आपके मामले में दूसरी बार) से मेल खाते के दाईं ओर के लिए regexp को लागू करता है । इसे भी देखेंecho banana | grep -Eo '^ban|^ana$'
@JdeBP, मेरे OS X पर, केवल GNU संस्करणों के साथ संगतता के लिए प्रदान किए गए लंबे विकल्पों का उल्लेख करते हुए GNU का उल्लेख करते हुए मैन पेज के
—
ilkachachu
grep
रूप में पहचान करता है grep (BSD grep) 2.5.1-FreeBSD
। इसके अलावा, कोई कॉपीराइट नोटिस या GPL (या FSF) का उल्लेख नहीं करता है। यदि इसका GNU उपयोग के साथ इतिहास है, तो यह बताना मुश्किल है।
हम दिखा रहे हैं कि यह कैसे भ्रामक है। (-::
—
जेडेबीपी
grep
डिकेड मून के जवाब में चर्चा की गई है कि इतने सारे लोग सही पहचान कर रहे हैं grep (GNU grep) 2.5.1-FreeBSD
(जैसा कि बग चर्चा में देखा जा सकता है), एक एफएसएफ कॉपीराइट नोटिस है, और निश्चित रूप से जीएनयू है grep
। फ्रीबीएसडी कॉल bsdgrep
क्या है जो ओपनबीएसडी है। कॉल grep
और बीएसडी है grep
, जिसमें कोई --color
विकल्प नहीं है, जिसमें फ्रीबीएसडी वेरिएंट है। जो कि आइडेंटिफाई करता है grep (BSD grep) 2.5.1-FreeBSD
, और विडंबना यह है कि बग चर्चा में एक व्यक्ति ने सुझाव दिया कि फ्रीबीएसडी स्विच grep
।