grep -v "grep"लाइन द्वारा इनपुट लाइन लेता है, और केवल उन लाइनों को आउटपुट grepकरता है जिसमें दिखाई नहीं देता है। बिना -v, यह उत्पादन केवल लाइनों, जिसमें होता grep है दिखाई देते हैं। man grepविवरण के लिए देखें।
जहाँ तक grepउपयोगिता का संबंध है, यह महत्वहीन है कि grepएक तर्क के रूप में इसे पारित करने वाला पैटर्न इसके नाम के समान है। लेकिन ज्यादातर मामलों में जहां grep -v grepवास्तव में प्रकट होता है, यह कोई संयोग नहीं है।
grep -v grep(या grep -v 'grep'या grep -v "grep") अक्सर एक पाइप के दाईं ओर दिखाई देता है जिसका बाईं ओर एक psकमांड है। यह संभावना है कि आपने इसे कहां देखा है। उदाहरण के लिए, मैं उन प्रोग्रामों को खोज सकता हूँ जिनके नाम, रास्ते या कमांड-लाइन तर्क बताते हैं कि वे Xfce से संबंधित हैं:
ek@Io:~$ ps x | grep xfce
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
31901 pts/1 S+ 0:00 grep --color=auto xfce
मेरा grepआदेश आउटपुट में दिखाया गया था, लेकिन यह वह नहीं है जिसकी मुझे तलाश है। मैं उन प्रक्रियाओं की जानकारी खोज रहा हूं जो पहले से चल रही थीं जब मैंने जांच की कि क्या चल रहा था, न कि वह प्रक्रिया जो केवल इसलिए चल रही है मेरे प्रयास के क्या चल रहा है।
इस विकर्षण को दूर करने का एक सामान्य तरीका है कि इसमें एक और पाइप जोड़ा जाए grep -v grep:
ek@Io:~$ ps x | grep xfce | grep -v grep
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
grep-Fइसके बिना एक निश्चित स्ट्रिंग के बजाय एक नियमित अभिव्यक्ति के रूप में अपने पैटर्न का व्यवहार करता है । तो एक और दृष्टिकोण एक नियमित अभिव्यक्ति लिखने के लिए है जो बिल्कुल मेल खाता है लेकिन अलग तरह से लिखा गया है। उदाहरण के लिए:xfce
ek@Io:~$ ps x | grep '[x]fce'
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
यह काम करता है क्योंकि [x]एक वर्ण वर्ग है जो अक्षर से बिल्कुल मेल खाता है x।
उन लोकप्रिय तरीकों में से एक कमी यह है कि वे उन पंक्तियों को फ़िल्टर कर देंगे, जिनमें सम्मिलित grepनहीं हैं , जबकि वे ऐसी grepआज्ञा नहीं हैं जो आप स्वयं चलाते हैं। वे भी grepकमांड नहीं हो सकते हैं - सिर्फ कमांड जिनके नाम, पथ या कमांड-लाइन तर्क हैं grep । इसलिए, जैसा कि सर्जी कोलोडियाज़नी ने बताया है , अक्सर उन तरीकों में से न तो (और न ही आउटपुट को शामिल करने वाला कोई अन्य तरीका ps) वास्तव में आदर्श है और जैसा कि निक हार्टले ने उल्लेख किया है , अन्य तरीके अक्सर उपयोग करते हैं pgrep। उदाहरण के लिए:
ek@Io:~$ pgrep -af xfce
2955 xfce4-power-manager
2958 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
-a पूरी कमांड लाइन दिखाता है। केवल प्रक्रिया आईडी नंबर दिखाने के लिए इसे छोड़ दें।
-f पूर्ण कमांड लाइन में खोज करता है। इसे केवल नाम खोजने के लिए छोड़ दें।
man grepकमांड के लिए संदर्भ मैनुअल पेज को पढ़ सकते हैं, या कुछ आदेशों पर अधिक जानकारी के लिए (इंक। Grep) आप कर सकते हैंinfo grep.... यानी। आपके सिस्टम में प्रलेखन है जो अक्सर बहुत काम आता है।