Anonim

वैश्विक नियमित अभिव्यक्ति प्रिंट या सिर्फ grep यूनिक्स और लिनक्स सिस्टम में सबसे बहुमुखी और सामान्य आदेशों में से एक है। आदेश एकल या एकाधिक इनपुट फ़ाइलों और मिलान पैटर्न लाइनों की तलाश करता है। नतीजतन, आपको मिलान लाइनों के साथ एक मानक आउटपुट मिलता है।

यदि आप एक फ़ाइल निर्दिष्ट नहीं करते हैं, तो grep रीडआउट के लिए मानक इनपुट का उपयोग करता है और यह संभवतः एक और कमांड का आउटपुट होने जा रहा है। कुल मिलाकर, grep में सरल वाक्यविन्यास है चाहे आप इसे फ़ाइल नाम के साथ या इसके बिना उपयोग करें।

यह आलेख आपको grep सिंटैक्स का त्वरित अवलोकन और कुछ मूल आदेश प्रदान करता है जिनका आप फ़ाइल नाम के साथ या बिना उपयोग कर सकते हैं।

इससे पहले कि आप शुरू करें

सभी grep कमांड एक ही सिंटैक्स का पालन करते हैं और प्रत्येक पैरामीटर का एक विशिष्ट कार्य होता है। यहाँ नमूना लाइन है:

जीआरई पैटर्न

आप कमांड आउटपुट को नियंत्रित करने के लिए grep में कई विकल्पों का उपयोग कर सकते हैं और संख्या शून्य से शुरू होती है। पैटर्न उस खोज पैटर्न को इंगित करता है जिसे आप लागू करना चाहते हैं। फ़ाइल के लिए, यह वह जगह है जहाँ फ़ाइल नाम या नाम चलते हैं, लेकिन पैरामीटर शून्य पर सेट किया जा सकता है।

स्ट्रिंग सर्च इन कमांड आउटपुट

संकेत के अनुसार, आपको विशिष्ट इनपुट फ़ाइलों का उपयोग करने की आवश्यकता नहीं है। एक और कमांड के आउटपुट का उपयोग grep में उन लाइनों को प्राप्त करने के लिए किया जा सकता है जो बिल्कुल एक पैटर्न से मेल खाते हैं। इसका उपयोग यह निर्धारित करने के लिए किया जा सकता है कि सिस्टम पर कौन सी प्रक्रिया सक्रिय है। यह नमूना कमांड सिंटैक्स है:

$ ps -ef | grep www-data

आपको मिलने वाला आउटपुट कुछ इस तरह का होना चाहिए:

www-data 18247 12675 4 16:00? 00:00:00 php-fpm: पूल www
रूट 18272 17714 0 16:00 pts / 0 00:00:00 grep –color = auto -exclude-dir = .bzr –exclude-dir = CVS –exclude-dir = .git -exclude-dir = .gg -exclude। dir = .svn www-data
www-data 31147 12770 0 Oct22? 00:05:51 नगीनक्स: कार्यकर्ता प्रक्रिया
www-data 31148 12770 0 Oct22? 00:00:00 नगीनक्स: कैश मैनेजर प्रक्रिया

कमांड लाइन को बाहर करने का एक तरीका है जो grep प्रक्रियाओं को दिखाता है। इसके लिए, आपको $ ps -ef का उपयोग करने की आवश्यकता है grep www-data | grep -v grep कमांड।

Grep शब्द खोज

आप अपने सिस्टम पर फाइलों में विशिष्ट शब्दों की खोज के लिए grep कमांड का उपयोग कर सकते हैं। वास्तव में, पूरे शब्द को टाइप करने की कोई आवश्यकता नहीं है। आप उदाहरण के लिए, केवल ग्नू का उपयोग कर सकते हैं, और कमांड उन सभी शब्दों को आउटपुट करता है जिनमें ये तीन अक्षर हैं। कमांड सिंटैक्स है:

$ grep ग्नू / usr / शेयर / शब्द

कमांड निष्पादित करने के बाद, आपका आउटपुट कुछ इस तरह दिखना चाहिए:

सिग्नस
बैल की आकृति का बारहसिद्धान्त
दो राजाए के भीतर समय
lgnu9d
Lignum
मैग्नम
मेग्नुसन
दलदल में उगनेवाली एक प्रकारए की सेवार
ढिबरी

दूसरी ओर, आप केवल उस विशिष्ट शब्द या अक्षरों की स्ट्रिंग के लिए खोज कर सकते हैं और बाकी सब को बाहर कर सकते हैं। इसके लिए, आपको -w या -word - regexp को सिंटैक्स में जोड़ना होगा। इस मामले में, उदाहरण कमांड इस तरह दिखता है - $ grep -w gnu / usr / share / words

नोट: व्याकरण के उद्देश्यों के लिए, कुछ आदेशों का अंत में पूर्ण विराम है। आपको grep के लिए उस विराम चिह्न की आवश्यकता नहीं है। जब आप कमांड को कॉपी / पेस्ट करते हैं, तो उसे छोड़ दें।

क्या ग्रीप केस संवेदनशील है?

सभी grep कमांड डिफॉल्ट रूप से संवेदनशील होते हैं। इसका मतलब है कि लोअरकेस और अपरकेस वर्णों का उपयोग करने से कमांड में ही फर्क पड़ता है। हालाँकि, आप कमांड लाइन में - i ( - इग्नोर - केस ) जोड़ सकते हैं और सिस्टम को ऊपरी और निचले दोनों केस वर्ड्स को खोजने की अनुमति देते हैं।

उदाहरण के लिए, आपका इनपुट कमांड इस $ grep -i ज़ेबरा / usr / शेयर / शब्द की तरह लग सकता है। यह आउटपुट को ऊपरी और निचले मामले के अक्षरों के किसी भी संयोजन से मेल खाने की अनुमति देता है जब वह ज़ेबरा की खोज करता है।

पंक्ति संख्याएँ

एक स्ट्रिंग के साथ लाइनों की संख्या निर्धारित करने के लिए –line-number विकल्प या just -n का उपयोग करें जो एक विशेष खोज पैटर्न से मेल खाता है। नतीजतन, आपको इसके सामने एक पंक्ति संख्या के साथ एक मानक आउटपुट मिलता है।

सटीक कमांड इस तरह दिख सकती है: $ grep -n 10000 / etc / services । निष्पादन के बाद, आउटपुट 10000 लाइनों पर पाए जाने वाले सभी मैचों को प्रदान करता है। नीचे दिए गए नमूने की जाँच करें:

10423: ndmp 10000 / tcp
10424: ndmp 10000 / udp

फ़ोल्डर में फ़ाइलें

आप फ़ाइल नाम के बजाय grep कमांड के पीछे एक तारांकन चिह्न लगा सकते हैं। Gnu मानदंड का उपयोग करने पर फिर से कमांड $ grep gnu * की तरह दिखता है और आउटपुट उन फाइलों को सूचीबद्ध करता है जिनमें gnu सम्‍मिलित है। यह नोट करना महत्वपूर्ण है कि इस तरह का कमांड एक लाइन देता है।

ध्यान दें: grep के साथ, एक लाइन उन वर्णों के अनुक्रम को संदर्भित करती है जो एक निर्दिष्ट ब्रेक तक चलती हैं। जब तक आप खोज को परिष्कृत नहीं करते, तब तक आउटपुट में जानकारी के पूरे पैराग्राफ हो सकते हैं।

ग्रेप के साथ अगला कदम उठाएं

यह मार्गदर्शिका सिर्फ उस सतह को खंगालती है जो आप grep के साथ कर सकते हैं। सभी बाधाओं को समाप्त होने में कुछ समय लग सकता है, लेकिन वाक्यविन्यास एक काफी सरल सिद्धांत का पालन करता है। और कुछ अभ्यास के साथ, आप अपनी खोजों को फ़ाइल नाम के साथ या बिना पूर्णता को परिष्कृत करने में सक्षम होंगे।

फ़ाइल नाम के बिना grep कैसे करें