आप पैरामीटर के grepसाथ पुनरावर्ती वर्तमान फ़ोल्डर को खोजने के लिए टूल का उपयोग कर सकते हैं -r, जैसे:
grep -r "pattern" .
नोट: -r- पुन : खोज उपनिर्देशिका।
विशिष्ट फ़ाइलों के भीतर खोजने के लिए, आप एक ग्लोबिंग सिंटैक्स का उपयोग कर सकते हैं जैसे:
grep "class foo" **/*.c
नोट: ग्लोबिंग विकल्प ( **) का उपयोग करके , यह विशिष्ट एक्सटेंशन या पैटर्न के साथ सभी फ़ाइलों को पुन: स्कैन करता है। इस सिंटैक्स को सक्षम करने के लिए, चलाएँ shopt -s globstar:। आप **/*.*सभी फ़ाइलों (छिपी और बिना एक्सटेंशन के) या किसी अन्य पैटर्न को छोड़कर भी उपयोग कर सकते हैं ।
यदि आपकी त्रुटि है कि आपका तर्क बहुत लंबा है, तो अपनी खोज को कम करने पर विचार करें, या findइसके बजाय सिंटैक्स का उपयोग करें :
find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
वैकल्पिक रूप से उपयोग करें ripgrep।
यदि आप बड़ी परियोजनाओं या बड़ी फ़ाइलों पर काम कर रहे हैं, तो आपको ripgrepइसके बजाय उपयोग करना चाहिए , जैसे:
rg "pattern" .
GitHub प्रोजेक्ट पेज पर डॉक्स, इंस्टॉलेशन स्टेप्स या सोर्स कोड चेक करें ।
ऐसा लगता है कि किसी भी अन्य उपकरण की तुलना में काफी तेज है जीएनयू / बीएसडी grep , ucg, ag, sift, ack, ptया इसी तरह की है, क्योंकि यह के शीर्ष पर बनाया गया है जंग के regex इंजन जो परिमित ऑटोमेटा, SIMD और आक्रामक शाब्दिक अनुकूलन बहुत तेजी से खोज करने के लिए उपयोग करता है।
यह .gitignoreफ़ाइलों में निर्दिष्ट पैटर्न को अनदेखा करने का समर्थन करता है , इसलिए एक एकल फ़ाइल पथ को एक साथ कई ग्लोब पैटर्न के खिलाफ मिलान किया जा सकता है।
आप आम मापदंडों का उपयोग कर सकते हैं जैसे:
-i - असंवेदनशील खोज।
-I - बाइनरी फ़ाइलों को अनदेखा करें।
-w - पूरे शब्दों के लिए खोजें (आंशिक शब्द मिलान के विपरीत)।
-n - अपने मैच की लाइन दिखाएं।
-C/ --context(जैसे -C5) - संदर्भ बढ़ता है, इसलिए आप आसपास के कोड को देखते हैं।
--color=auto - मिलान पाठ को चिह्नित करें।
-H - जहाँ फ़ाइल मिलती है फ़ाइल नाम प्रदर्शित करता है।
-c- मिलान लाइनों की संख्या प्रदर्शित करता है। के साथ जोड़ा जा सकता है -H।