grep

2012-08-16 15 views
50

में डबल कोट से बचें मैं डबल कोट्स वाले कीवर्ड के लिए grep करना चाहता था। एक साधारण उदाहरण देने के लिए:grep

echo "member":"time"|grep -e "member\"" 

यह मेल नहीं खाता है। इसे कैसे जोड़ेंगे?

उत्तर

80
समस्या

कि आप सही तरीके से इनपुट स्ट्रिंग से बचने के नहीं हैं, की कोशिश:

echo "\"member\":\"time\"" |grep -e "member\"" 

वैकल्पिक रूप से आप एकल उद्धरण के भीतर नहीं छोड़ा जाएगा दोहरे उद्धरण चिह्नों का उपयोग कर सकते हैं:

echo '"member":"time"' |grep -e 'member"' 

यह प्राथमिकता का मामला है जो आपको स्पष्ट लगता है हालांकि दूसरा दृष्टिकोण आपको एकल कमांड के दूसरे सेट (जैसे ssh 'cmd') के भीतर अपने कमांड को घोंसले से रोकता है।

+0

+1 अच्छा और सरल! – alfasin

+1

यह काम करेगा? 'echo' "सदस्य": "समय" '| grep -e "सदस्य" ' – ant

+0

का परीक्षण नहीं किया था। इसे 'echo' 'सदस्य' होना चाहिए: "समय" '| grep -e' सदस्य "'।' दोनों दृष्टिकोण मान्य हैं, लेकिन मैं स्पष्ट रूप से बचाना पसंद करता हूं, क्योंकि इरादा अधिक स्पष्ट है। – cmh