मैंने इस सवाल का जवाब दिया SuperUser पर जो कि आउटपुट को ग्रिप करते समय उपयोग किए जाने वाले रेगुलर एक्सप्रेशन से संबंधित था।
मैंने जो उत्तर दिया वह यह था:
tail -f log | grep "some_string.*some_string"
और फिर, मेरे जवाब में तीन टिप्पणियों में @ @ ने यह लिखा:
.*
लालची है और जितना आप चाहते हैं उससे अधिक पर कब्जा कर सकते हैं।.*?
आमतौर पर बेहतर है।
फिर यह,
?
एक संशोधक है*
, यह लालची डिफ़ॉल्ट के बजाय आलसी बना रही है। पीसीआरई मान रहा है।
मैं के लिए googled PCRE
, लेकिन मेरे जवाब में इसका क्या महत्व है यह नहीं मिल सका?
और अंत में यह,
मुझे यह भी इंगित करना चाहिए कि यह regex है (डिफ़ॉल्ट रूप से POSIX regex कर रहा है), शेल गोला नहीं।
मुझे केवल यह पता है कि एक Regex क्या है और grep कमांड में इसका बहुत बुनियादी उपयोग है। इसलिए, मुझे उन 3 टिप्पणियों में से कोई भी नहीं मिला और मेरे मन में ये सवाल हैं:
.*?
बनाम के उपयोग में क्या अंतर हैं.*
?- जो बेहतर है और किस परिस्थिति में है? कृपया उदाहरण दें।
इसके अलावा टिप्पणियों को समझने में मदद मिलेगी, अगर कोई भी कर सकता है
UPDATE: सवाल के जवाब के रूप में Regex Shell Globs से कैसे अलग हैं? @ कुसलानंद ने अपनी टिप्पणी में यह लिंक प्रदान किया ।
नोट: यदि आवश्यक हो, तो संदर्भ के संदर्भ में उत्तर देने से पहले कृपया इस प्रश्न का उत्तर पढ़ें ।
.*
.*?