grep - grep पैटर्न में कोष्ठक ps परिणाम से grep प्रक्रिया को क्यों निकालते हैं?


12

grepपैटर्न में कोष्ठक psपरिणाम से grep प्रक्रिया को क्यों हटाते हैं ?

$ ps -ef | grep XXXX

[...] XXXX
[...] grep XXXX


$ ps -ef | grep [X]XXX

[...] XXXX

2
यह एक महान छोटी चाल है, पहले स्थान पर!
केविन कैंटू

इस प्रश्न के आगे के उत्तर यहाँ दिए गए हैं। unix.stackexchange.com/questions/78771/…
erch

जवाबों:


20

जब आप चलाते हैं ps -ef | grep string, तो stringमैच के कारण grep आउटपुट में प्रदर्शित होता है [...] grep string

लेकिन, जब आप ps -ef | grep [s]tringलाइन चलाते हैं तो प्रदर्शित नहीं होती है, क्योंकि grep अनुवाद [s]tringकरता है string, जबकि ps आउटपुट [...] grep [s]tringकरता है, और जो मेल नहीं खाता हैstring


1
... क्योंकि []वर्णों के समुच्चय में से किसी एक का प्रतिनिधित्व करता है, जिसके कोष्ठक में, इस मामले में "s" एक ही है ...
जब तक कि आगे की सूचना न हो।

हाँ ... मैं वास्तव में अंग्रेजी में इस एक को समझाने की कोशिश कर रहा था ... यह मेरी पहली भाषा नहीं है :)
स्टीफन

2

क्योंकि ब्रैकेट्स को एक बार फिर से और grep के लिए, भागने की जरूरत है:

$ ps -ef | grep \\[X\\]XXX

[...] XXXX
[...] grep XXXX


$ ps -ef | grep "\[X\]XXX"

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