संपादित 1 सप्ताह पहले द्वारा ExtremeHow संपादकीय टीम
कमांड लाइनपाठ प्रसंस्करणखोजेंउपयोगिताएँफ़ाइल प्रबंधनडेटा हेरफेरटर्मिनलस्क्रिप्टिंगउत्पादकतारेगेक्स
अनुवाद अपडेट किया गया 1 सप्ताह पहले
grep कमांड लिनक्स में उपलब्ध सबसे शक्तिशाली और बहुपर्युक्त टूल्स में से एक है। यह "ग्लोबल रेगुलर एक्सप्रेशन प्रिंट" के लिए है। Grep का व्यापक रूप से पैटर्न के उपयोग से टेक्स्ट खोजने के लिए उपयोग किया जाता है। यह कमांड आपको एक विशिष्ट फ़ाइल या डायरेक्टरी में एक करैक्टर स्ट्रिंग खोजने में मदद करता है। यदि यह उस विशेष स्ट्रिंग को खोजने में सक्षम होता है, तो टूल उस स्ट्रिंग को शामिल करने वाली लाइनों को आउटपुट करेगा।
grep कमांड का प्रभावी ढंग से उपयोग करना समझना किसी के लिए भी आवश्यक है जो लिनक्स सिस्टम्स के साथ काम कर रहा है। यह उन्हें जानकारी को फ़िल्टर करने, विशिष्ट सामग्री निकालने, और जटिल पैटर्न खोजें करने में मदद कर सकता है। इसे अन्य कमांड्स के साथ संयोजित भी किया जा सकता है ताकि और भी उन्नत संचालन प्राप्त हो सके।
grep कमांड की मूल वाक्य संरचना इस प्रकार है:
grep [options] pattern [file...]
यहाँ कुछ उदाहरण कमांड्स हैं जो आपको दिखाने के लिए एक बुनियादी विचार देते हैं कि grep कमांड कैसे काम करता है:
grep "word" filename.txt
यह कमांड "word" शब्द को "filename.txt" नामक फ़ाइल में खोजता है। यदि यह इसे पाता है, तो यह उस शब्द को शामिल करने वाली लाइनों को प्रिंट करेगा।
grep -i "word" filename.txt
यह कमांड केस सेंसिटिविटी खोज करता है, जिसका अर्थ है कि यह "Word", "WORD", "word" या किसी भी अक्षर केस भिन्नता के लिए खोज करेगा।
grep -w "word" filename.txt
-w विकल्प के साथ, grep पूरे शब्द की खोज करता है। यह उपस्ट्रिंग्स के साथ मेल नहीं खाता है। यहाँ "wordy" को शामिल नहीं किया जाएगा।
grep -r "word" /path/to/directory
यह कमांड दिए गए डायरेक्टरी के अंतर्गत सभी फ़ाइलों में, उसके सबडायरेक्टरियों सहित, "word" शब्द की खोज करता है।
अब जब हम बुनियादी जानते हैं, चलो grep कमांड के कुछ अधिक उन्नत उपयोगों को देखते हैं।
grep की एक मुख्य विशेषता यह है कि यह पैटर्न मिलान के लिए रेगुलर एक्सप्रेशन का उपयोग कर सकता है। इससे अधिक जटिल खोजें करना संभव होता है।
grep '^pattern' filename.txt
यह "pattern" से आरंभ होने वाली लाइनों को खोजता है। रेगुलर एक्सप्रेशन में कैरेट चिन्ह ^ लाइन की शुरुआत को दर्शाता है।
grep 'pattern$' filename.txt
यह "pattern" के साथ समाप्त होने वाली लाइनों को खोजता है। डॉलर चिह्न $ लाइन के अंत को दर्शाता है।
किसी सटीक स्ट्रिंग को खोजने के लिए, आप डबल उद्धरण का उपयोग कर सकते हैं:
grep "pattern" filename.txt
-E विकल्प का उपयोग करें विस्तारित रेगुलर एक्सप्रेशन को सक्षम करने के लिए। यह अतिरिक्त regex विशेषताएँ जैसे निम्नलिखित का उपयोग करने की अनुमति देता है:
grep -E 'word1|word2' filename.txt
यह "word1" या "word2" दोनों की खोज करता है।
grep -E '(word1|word2)word3' filename.txt
यह "word1word3" या "word2word3" की खोज करता है।
किसी पैटर्न से मेल खाने वाली लाइनों की संख्या गिनने के लिए -c विकल्प का उपयोग करें:
grep -c "word" filename.txt
यह "word" शब्द को शामिल करने वाली लाइनों की संख्या प्रदान करता है।
यदि आप पता लगाना चाहते हैं कि कौन सी फ़ाइलें एक विशेष पैटर्न को शामिल करती हैं, तो -l (लोअर केस L) विकल्प का उपयोग करें:
grep -l "word" *.txt
यह कमांड वर्तमान डायरेक्टरी में उन टेक्स्ट फ़ाइलों के फ़ाइल नामों को सूचीबद्ध करता है जो "word" शब्द को शामिल करती हैं।
यदि आप एक पैटर्न से मेल खाने वाली लाइनों को छोड़ना चाहते हैं, तो -v विकल्प का उपयोग करें:
grep -v "word" filename.txt
यह उन लाइनों का उत्पादन करता है जो "word" शब्द को शामिल नहीं करती हैं।
मेल नियमित लाइनों के साथ लाइन नंबर दिखाने के लिए -n विकल्प का उपयोग करें:
grep -n "word" filename.txt
यह कमांड मेल खाने वाली लाइन को उसके लाइन नंबर के साथ प्रदर्शित करता है।
grep कमांड अक्सर अन्य लिनक्स कमांड्स के साथ मिलकर उन परिणामों को प्रदर्शित करने के लिए उपयोग किया जाता है जो महत्वपूर्ण हैं। उदाहरण के लिए, आप एक कमांड के आउटपुट को पाइप करके grep में और अधिक फिल्टर कर सकते हैं:
ls -l | grep "word"
यह कमांड फ़ाइलों को लंबे फॉर्मेट में सूचीबद्ध करता है और फिर परिणामों को “word” शब्द को शामिल करने वाली लाइनों तक सीमित करता है।
मेल उलटने के लिए, आप -v विकल्प को अन्य विकल्पों के साथ मिला सकते हैं। यह तब उपयोगी है जब आप मेल खाने वाली लाइनों को छोड़कर सभी लाइनों को चाहते हैं:
grep -v "pattern" filename.txt
आउटपुट टेक्स्ट में मेल नियमित पैटर्न को हाइलाइट करने के लिए --color विकल्प का उपयोग करें:
grep --color=auto "word" filename.txt
यह विकल्प स्पष्ट रूप से देखने में मदद करता है कि टेक्स्ट में कहां पर शब्द मेल खाता है।
चलो कुछ व्यावहारिक परिदृश्यों को देखते हैं जहाँ grep दैनिक कार्यों में महत्वपूर्ण रूप से मदद कर सकता है:
सिस्टम प्रशासकों को आमतौर पर त्रुटियों का ट्रबलशूट करने के लिए लॉग फ़ाइलों की जाँच करनी होती है। Grep का उपयोग विशेष त्रुटि संदेशों की घटनाओं को तेजी से खोजने के लिए किया जा सकता है:
grep "ERROR" /var/log/syslog
यदि आपको अपनी खोज में संदर्भ शामिल करने की आवश्यकता है, जैसे कि मेल के पहले या बाद में लाइनों को दिखाना, grep -A (बाद), -B (पहले), और -C (संदर्भ) जैसे विकल्प प्रदान करता है:
grep -C 3 "ERROR" /var/log/syslog
यह प्रत्येक मेल के पहले और बाद में तीन लाइनों का संदर्भ प्रदर्शित करता है।
जब कई डेवलपर्स एक ही परियोजना पर काम करते हैं, तो यह विशिष्ट कार्यान्वयनों या परिवर्तनों को खोजने के लिए कोड के माध्यम से खोज करना आम होता है। Grep फाइलों के माध्यम से खोजने में मदद करता है:
grep -r "functionName" /path/to/codebase
यह पूरे कोडबेस में किसी विशिष्ट फ़ंक्शन के परिभाषा या कॉल खोजने के लिए त्वरित बनाता है, और आपकी समीक्षा कार्यक्षमता को केंद्रित करने में मदद करता है।
कभी-कभी, आपको पर्यावरण वेरिएबल्स या कॉन्फ़िगरेशन खोजने की आवश्यकता होती है। Grep सिस्टम सेटिंग्स या कई कॉन्फ़िगरेशन फ़ाइलों के माध्यम से खोज सकता है:
printenv | grep "HOME"
यह पर्यावरण वेरिएबल्स से HOME वेरिएबल का मान प्राप्त करता है।
grep कमांड एक बहुपर्युक्त उपकरण है जिसका उपयोग टेक्स्ट डेटा को खोजने के लिए किया जाता है जो एक रेगुलर एक्सप्रेशन से मेल खाती है। हालाँकि यह शुरुआत में सरल लगता है, जब इसे रेगुलर एक्सप्रेशन और अन्य कमांड्स के साथ संयोजित किया जाता है, तो इसका वास्तविक शक्ति उभरता है। इसके कई विकल्पों के साथ, grep को सरल और जटिल दोनों उपयोग के मामलों के अनुरूप बनाया जा सकता है।
यह शक्तिशाली खोज उपयोगिता लिनक्स के कमांड-लाइन वातावरण की लचीलापन और समृद्धि का प्रमाण है। Grep को समझना आपके टेक्स्ट प्रोसेसिंग क्षमताओं को बढ़ाएगा और डेटा की नेविगेशन और प्रबंधन को अधिक कुशल और प्रभावशाली बनाएगा। चाहे आप कोड की लाइनों की तलाश कर रहे हों या लॉग फ़ाइलों का विश्लेषण कर रहे हों, grep मूल्यवान अंतर्दृष्टियों और जानकारी निकालने के लिए एक अपरिहार्य सहयोगी है।
यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं