Grep का उपयोग करके स्ट्रिंग में मेरा इनपुट नहीं ढूँढ सकता


11

जहाँ मैं उस लाइन में अपना इनपुट ढूंढना चाहता हूँ, मैं एक अल्पविराम से अलग हो गया हूँ:

echo US | grep "US,CA,CH,JP"

आउटपुट खाली है! उस स्ट्रिंग में अपना इनपुट खोजने के लिए मुझे grep का उपयोग कैसे करना चाहिए?

जवाबों:


18

आदेशों के तर्क को स्वैप करें:

echo "US,CA,CH,JP" | grep US

में:

echo US | grep "US,CA,CH,JP"

आप US,CA,CH,JPइनपुट स्ट्रिंग में स्ट्रिंग (पैटर्न) की तलाश कर रहे हैं US, जो अपेक्षित रूप से मेल नहीं खा रहा है।


14

जब तक आप अल्पविराम को "या" कथन की तरह कार्य करने की उम्मीद नहीं कर रहे थे, तब तक आपको केवल अल्पविराम को पाइप में बदलने और विस्तारित नियमित अभिव्यक्ति के -Eविकल्प का उपयोग करने की आवश्यकता है :

echo US | grep -E "US|CA|CH|JP"

या अल्पविराम को नए वर्णों में बदलें:

echo US | grep "US
CA
CH
JP"

-1

मै इस्तेमाल करूंगा $echo US | grep -i "US|CA|JP|CH"

इको के बजाय इसे एक सूची या कुछ दें, जहां यह वास्तव में "यूएस" में ढूंढने के बजाय पैटर्न की तलाश में जा सकता है।


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