2013-03-25 10 views
166

LINUX में किसी निर्देशिका में स्ट्रिंग या टेक्स्ट को grep कैसे करें और इसकी सभी उपनिर्देशिकाएंफ़ाइल कैसे करें ??LINUX में एक निर्देशिका में अपनी स्ट्रिंग और इसकी सभी उपनिर्देशिका फ़ाइलों को कैसे स्ट्रिप करें?

+1

क्या आप 'grep -r' या 'grep -R' के साथ आने वाली समस्याओं पर कोई प्रतिक्रिया प्रदान करने जा रहे हैं? क्या आपने अपनी मशीन पर 'grep' के लिए मैन पेज देखा था? क्या आपको एकल उद्धरण में रेगेक्स (स्ट्रिंग या टेक्स्ट) संलग्न करना याद है यदि इसमें कोई मेटाएक्टेक्टर शामिल है? –

उत्तर

326

अपने ग्रेप -R का समर्थन करता है, तो कार्य करें:

grep -R 'string' dir/ 

यदि नहीं, तो का उपयोग find:

find dir/ -type f -exec grep -H 'string' {} + 
+3

क्या आप यह भी समझा सकते हैं कि दूसरा जवाब कैसे काम करता है? – tranquil

+1

नियमित फ़ाइलों के लिए 'dir/'निर्देशिका में' ढूंढ 'का उपयोग करके खोजें और उन फ़ाइलों में से प्रत्येक पर' grep -H 'string' चलाएं। – markzz

+0

नीचे उत्तर देखें। यदि '-R' काम नहीं करता है, तो '-r' भी आज़माएं। –

38
grep -r -e string directory 

-r पुनरावर्ती के लिए है; -e वैकल्पिक है लेकिन इसकी तर्क रेगेक्स को खोजने के लिए निर्दिष्ट करती है। दिलचस्प बात यह है कि POSIX grep को -r (या -R) का समर्थन करने की आवश्यकता नहीं है, लेकिन मैं व्यावहारिक रूप से निश्चित हूं कि सिस्टम वी grep ने किया था, इसलिए अभ्यास में वे (लगभग) सभी करते हैं। grep के कुछ संस्करण -R के साथ-साथ (या इसके बजाय अनुमानित रूप से) -r का समर्थन करते हैं; AFAICT, इसका मतलब एक ही बात है।

+0

मुझे यकीन है कि एसवीआर 3.2 और एसवीआर 4 जीआरपी नहीं थे, क्योंकि मैंने उस समय फ्रेम के दौरान एसवाईएसवी उत्पादों के लिए ओएस विकास पर काम किया था, और उस समय मुझे लपेटने के लिए एक आरजीआरई खोल स्क्रिप्ट थी। हालांकि मेरे पास परीक्षण करने के लिए कोई और नहीं है। –

+0

@RandyHoward: धन्यवाद! एसवीआर 3.2 और एसवीआर 4.0 दोनों पर्याप्त एंटीक हैं कि मुझे यह जानकर आश्चर्य नहीं हुआ कि मेरी याददाश्त दोषपूर्ण है। –

+1

'-R' सिम्लिंक का पालन करता है, जिसे आप –

संबंधित मुद्दे

 संबंधित मुद्दे