लिनक्स में ग्रेप कमांड

Grep Command Linux



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

इस लेख में, हम विभिन्न उदाहरणों के साथ grep उपयोगिता के उपयोग की व्याख्या करेंगे। हम इस आलेख में उल्लिखित आदेशों और विधियों को समझाने के लिए डेबियन 10 का उपयोग करेंगे।







Grep . स्थापित करना

अधिकांश लिनक्स वितरणों में Grep स्थापित होता है। हालाँकि, यदि यह आपके सिस्टम से गायब है, तो आप इसे टर्मिनल में निम्न विधि का उपयोग करके स्थापित कर सकते हैं:



$सुडो उपयुक्त-स्थापित करें पकड़

Grep . का उपयोग करना

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



$पकड़ [विकल्प]प्रतिरूप[फ़ाइल...]

फ़ाइलें खोजें

किसी निर्देशिका में फ़ाइल नाम खोजने के लिए जिसमें एक विशिष्ट स्ट्रिंग है, आप निम्न तरीके से grep का उपयोग कर सकते हैं:





$रास -NS | पकड़ -मैंडोरी

उदाहरण के लिए, एक फ़ाइल नाम की खोज करने के लिए जिसमें एक स्ट्रिंग है परीक्षण , आदेश होगा:

$रास-NS| पकड़-मैंपरीक्षण

यह आदेश उन सभी फाइलों को सूचीबद्ध करता है जिनमें स्ट्रिंग शामिल है परीक्षण .



फ़ाइल में स्ट्रिंग खोजें

किसी विशेष फ़ाइल में स्ट्रिंग खोजने के लिए, आप निम्न कमांड सिंटैक्स का उपयोग कर सकते हैं:

$पकड़स्ट्रिंग फ़ाइल नाम

उदाहरण के लिए, एक स्ट्रिंग की खोज करने के लिए परीक्षण नाम की एक फाइल में टेस्टफाइल1 , हमने निम्नलिखित कमांड का उपयोग किया है: :

$पकड़कर्मचारी टेस्टफाइल1

उपरोक्त आउटपुट ने वाक्य को वापस कर दिया है टेस्टफाइल1 जिसमें स्ट्रिंग है कर्मचारी .

एकाधिक फ़ाइलों में एक स्ट्रिंग खोजें

एकाधिक फ़ाइलों में एक स्ट्रिंग की खोज करने के लिए, आप निम्न कमांड सिंटैक्स का उपयोग कर सकते हैं:

$पकड़स्ट्रिंग फ़ाइलनाम1 फ़ाइलनाम2

उदाहरण के लिए, हमारी दो फाइलों testfile1 और testfile2 में एक स्ट्रिंग कर्मचारी को खोजने के लिए, हमने निम्नलिखित कमांड का उपयोग किया है:

$पकड़कर्मचारी टेस्टफाइल1 टेस्टफाइल2

उपरोक्त आदेश उन सभी पंक्तियों को सूचीबद्ध करेगा जिनमें दोनों फाइलों से स्ट्रिंग कर्मचारी शामिल हैं testfile1 तथा testfile2।

यदि सभी फ़ाइल नाम एक ही टेक्स्ट से शुरू होते हैं, तो आप वाइल्डकार्ड वर्ण का भी उपयोग कर सकते हैं।

$पकड़स्ट्रिंग फ़ाइल नाम*

जैसे, यदि हम उपरोक्त उदाहरण लेते हैं जिसमें हमारे फ़ाइल नाम थे टेस्टफाइल1 और टेस्टफाइल2 , आदेश होगा:

$पकड़कर्मचारी टेस्टफाइल*

स्ट्रिंग के मामले को अनदेखा करके फ़ाइल में स्ट्रिंग खोजें

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

आप निम्न प्रकार से grep के बाद -i ध्वज का उपयोग करके खोज स्ट्रिंग के मामले को अनदेखा करने के लिए grep बता सकते हैं:

$पकड़-मैं स्ट्रिंग फ़ाइल नाम

-i ध्वज का उपयोग करके, कमांड केस असंवेदनशील खोज करेगा और स्ट्रिंग वाली सभी पंक्तियों को वापस कर देगा कर्मचारी इसमें अक्षरों को ध्यान में रखे बिना अपरकेस या लोअरकेस में हैं।

रेगुलर एक्सप्रेशन का उपयोग करके खोजें

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

$पकड़प्रारंभिक कीवर्ड।*समाप्तिकीवर्ड फ़ाइल नाम

उदाहरण के लिए, testfile1 नाम की फ़ाइल में एक लाइन की खोज करने के लिए जो इस स्ट्रिंग से शुरू होती है और स्ट्रिंग डेटा के साथ समाप्त होती है, हमने निम्नलिखित कमांड का उपयोग किया है:

$पकड़यह।*डेटा टेस्टफाइल1

यह से पूरी लाइन प्रिंट करेगा टेस्टफाइल1 अभिव्यक्ति युक्त (कीवर्ड शुरू करना यह और समाप्त होने वाला कीवर्ड डेटा)।

खोज स्ट्रिंग के बाद/पहले विशेष पंक्तियों को प्रिंट करें

आप मिलान वाली स्ट्रिंग के साथ-साथ स्ट्रिंग मिलान से पहले/बाद में फ़ाइल में विशिष्ट संख्या में पंक्तियों को भी प्रदर्शित कर सकते हैं। इस उद्देश्य के लिए निम्नलिखित सिंटैक्स का उपयोग किया जा सकता है:

$पकड़ -प्रति <एन>स्ट्रिंग फ़ाइल नाम

मिलान वाली स्ट्रिंग सहित निर्दिष्ट फ़ाइल में स्ट्रिंग का मिलान होने के बाद यह पंक्तियों की संख्या प्रदर्शित करेगा।

उदाहरण के लिए, यह हमारी नमूना फ़ाइल है जिसका नाम है टेस्टफाइल2 .

निम्न आदेश स्ट्रिंग युक्त मिलान वाली लाइन को आउटपुट करेगा कर्मचारी , इसके बाद की 2 पंक्तियों के साथ।

$पकड़-प्रति2-मैं कर्मचारी टेस्टफाइल2

इसी तरह, किसी विशिष्ट फ़ाइल में मिलान वाली स्ट्रिंग से पहले N संख्या की पंक्तियों को प्रदर्शित करने के लिए, निम्न सिंटैक्स का उपयोग करें:

$पकड़ -बी <एन>स्ट्रिंग फ़ाइल नाम

किसी विशिष्ट फ़ाइल में स्ट्रिंग के चारों ओर N संख्या की रेखाएँ प्रदर्शित करने के लिए, निम्न सिंटैक्स का उपयोग करें:

$पकड़ -सी <एन>स्ट्रिंग फ़ाइल नाम

खोज को हाइलाइट करना

डिफ़ॉल्ट रूप से ग्रेप प्रिंट से मेल खाने वाली लाइनें लेकिन यह नहीं दिखाता कि लाइन का कौन सा हिस्सा मेल खाता है। यदि आप grep के साथ -color विकल्प का उपयोग करते हैं, तो यह दिखाएगा कि आपकी फ़ाइल में मशीनिंग स्ट्रिंग्स कहाँ दिखाई देती हैं। डिफ़ॉल्ट रूप से Grep हाइलाइट करने के लिए लाल रंग का उपयोग करता है।

इस उद्देश्य के लिए निम्नलिखित सिंटैक्स का उपयोग किया जा सकता है:

$पकड़स्ट्रिंग फ़ाइल नाम--रंग

मैचों की संख्या की गिनती

यदि आप यह गिनना चाहते हैं कि किसी विशिष्ट फ़ाइल में कोई विशेष शब्द कितनी बार प्रकट होता है, तो आप -c विकल्प के साथ grep का उपयोग कर सकते हैं। यह मैचों के बजाय केवल मैचों की संख्या लौटाता है। इस उद्देश्य के लिए निम्नलिखित सिंटैक्स का उपयोग किया जा सकता है:

$पकड़-सी स्ट्रिंग फ़ाइल नाम

यह हमारी नमूना फ़ाइल इस तरह दिखती है:

निम्नलिखित एक कमांड का एक उदाहरण है जो शब्द को जितनी बार लौटाता है फ़ाइल नाम की एक फाइल में दिखाई दिया टेस्टफाइल3 .

उलटा खोज

कभी-कभी, आप एक रिवर्स सर्च करना चाहते हैं जो इनपुट से मेल खाने वाली सभी पंक्तियों को प्रदर्शित करता है। ऐसा करने के लिए, बस -v ध्वज के बाद grep का उपयोग करें:

$पकड़-v स्ट्रिंग फ़ाइल नाम

उदाहरण के लिए, किसी फ़ाइल में सभी पंक्तियों को प्रदर्शित करने के लिए टेस्टफाइल3 उनमें खाता शब्द नहीं है, हमने निम्न आदेश का उपयोग किया है:

$पकड़-v अकाउंट टेस्टफाइल3

अन्य आदेशों के साथ Grep का उपयोग करना

Grep का उपयोग विभिन्न कमांड आउटपुट से आवश्यक परिणाम को फ़िल्टर करने के लिए भी किया जा सकता है। उदाहरण के लिए, से उपयुक्त-स्थापित सूची कमांड आउटपुट, आप केवल उन पैकेजों को खोजना चाहते हैं जो स्वचालित रूप से स्थापित किए गए थे, आप निम्नानुसार grep का उपयोग करके परिणाम को फ़िल्टर कर सकते हैं:

$उपयुक्त--स्थापितसूची| पकड़स्वचालित

इसी तरह lscpu CPU के बारे में विस्तृत जानकारी प्रदान करता है। यदि आप CPU आर्किटेक्चर के बारे में जानकारी में रुचि रखते हैं, तो आप निम्न कमांड का उपयोग करके इसे फ़िल्टर कर सकते हैं:

$एलएससीपीयू| पकड़आर्किटेक्चर

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