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

यह काम किस प्रकार करता है

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

डेबियन - स्थिर सर्वर वितरण
उबंटू - डेस्कटॉप डिस्ट्रो मूल रूप से डेबियन पर आधारित है
कुबंटू - जीनोम के बजाय केडीई डेस्कटॉप का उपयोग करता है
फेडोरा - मुक्त Red Hat डेस्कटॉप सिस्टम का निरंतरता
Gentoo - प्रो उपयोगकर्ताओं के लिए एक तेज़, स्रोत आधारित लिनक्स सिस्टम
एसयूएसई - नोवेल द्वारा स्वामित्व वाले वाणिज्यिक लिनक्स
मिंट - अतिरिक्त प्रतिबंधित सॉफ्टवेयर के साथ उबंटू-व्युत्पन्न डिस्ट्रो

Grep का उपयोग टेक्स्ट के माध्यम से पढ़ने के लिए किया जा सकता है और इसे केवल उन हिस्सों को दिखाने के लिए फ़िल्टर किया जा सकता है जिन्हें आप चाहते हैं। यदि आप केवल उन पंक्तियों को देखना चाहते हैं जिनमें "उबंटू" शब्द है, तो आप निम्न आदेश चलाएंगे:

 grep उबंटू distros.txt 

(Grep का आपका संस्करण उपरोक्त उदाहरण में रंग हाइलाइटिंग शामिल हो सकता है या नहीं)

मामले की संवेदनशीलता

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

 grep -i ubuntu distros.txt 

पूरा शब्द

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

 grep -i ubuntu distros.txt 

बहिष्करण

जितना आप केवल मिलान प्रविष्टियों को दिखाने के लिए grep का उपयोग कर सकते हैं, आप मिलान करने वाली प्रविष्टियों को दिखाने के लिए इसका उपयोग भी कर सकते हैं। हमारी पिछली खोजों पर विस्तार करने के लिए, अब हम अपने परिणामों को उल्टा करने के लिए -v विकल्प का उपयोग कर सकते हैं और केवल उन पंक्तियों को दिखा सकते हैं जो मेल नहीं खाते हैं।

वाइल्डकार्ड

मिलान पैटर्न के दौरान Grep वाइल्डकार्ड के लिए पूर्ण समर्थन है। वाइल्डकार्ड और अन्य विशेष पात्रों का उपयोग करते समय, आप यह सुनिश्चित करना चाहते हैं कि आपका खोज पैटर्न उद्धरणों में है, इसलिए लिनक्स खोल grep कर से पहले उन्हें समझने की कोशिश नहीं करता है। आम वाइल्डकार्ड में * पात्रों के समूहों के लिए * शामिल हैं। एक अज्ञात चरित्र का प्रतिनिधित्व करने के लिए।

सीमाओं

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

 आइटम 1 - सेब आइटम 2 - केले आइटम 3 - नारियल आइटम 4 - आड़ू आइटम 5 - अंगूर आइटम 6 - खुबानी 

आप कुछ का उपयोग कर एक विशेष सीमा का चयन कर सकते हैं

 grep "आइटम [2-4]" items.txt 

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