सवाल मैं सभी फ़ाइलों और सभी निर्देशिकाओं में पुनरावर्ती शब्द कैसे प्राप्त करूं?


मैं CentOS में एक विशिष्ट वाक्यांश की तलाश में हूं और मुझे यकीन नहीं है कि फ़ाइल कहां और कौन सी फाइल या यहां तक ​​कि निर्देशिका है। मैं एक वाक्यांश पर एक पूर्ण रिकर्सिव खोज कैसे कर सकता हूं। धन्यवाद


7
2017-09-24 13:41


मूल




जवाब:


man grep
इस उदाहरण के लिए, grep -i -R "your phrase" directory
-i मामला असंवेदनशील है
-R का मतलब है पुनरावर्ती

यदि आप नहीं जानते कि कौन सी निर्देशिका, / - लेकिन लंबे समय तक लेने के लिए तैयार रहें।


15
2017-09-24 13:44



जैसा कि मैंने कहा था मुझे निर्देशिका के बारे में कोई जानकारी नहीं है - user50946
रूट निर्देशिका के साथ अद्यतन किया गया। हालांकि इसमें काफी समय लगेगा। - James L
मैंने जो किया वह मैंने किया लेकिन बहुत सारे रिकॉर्ड हैं ... क्या इसे पाठ फ़ाइल में सहेजने का कोई तरीका है? - user50946
पाइपिंग और रीडायरेक्ट के बारे में पढ़ें। > एक फ़ाइल में सहेजता है, >> एक फाइल में संलग्न होता है, और | एक प्रक्रिया के लिए पाइप। तो, इस मामले में, grep -i -R "your phrase" directory > /path/to/your/textfile - अगर आप सिर्फ फाइलों की सूची चाहते हैं तो grep तर्कों को -l जोड़ने पर विचार करें (@Richard Holloway के अनुसार - James L
आप आउटपुट को एक फ़ाइल में रीडायरेक्ट कर सकते हैं grep -i -R "your phrase" directory > myfile.txt, या आप परिणाम देखने के लिए कम उपयोग कर सकते हैं grep -i -R "your phrase" directory | less - Avada Kedavra


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

  find . -print0 | xargs -0 grep "The phrase I am looking for" -l

4
2017-09-24 13:45



क्या यह grep के रिकर्सिव ध्वज पर कोई कार्यक्षमता जोड़ता है? - James L
@ जेम्स: नहीं। मैं मुख्य रूप से फ़ाइल नाम एक्सटेंशन निर्दिष्ट करने के लिए अतिरिक्त खोज कार्यक्षमता प्राप्त करने के लिए इसका उपयोग करता हूं (उदाहरण के लिए -नाम "* .php" के साथ) और इसी तरह लेकिन इस उदाहरण में यह कुछ भी नहीं जोड़ता है। - Richard Holloway
मैं भी एक पाइप दुर्व्यवहार कर रहा हूँ। एक बार जब आप इसका इस्तेमाल कर लें तो इसे रोकना मुश्किल है! - pauska
मेरे सर्वरों के पास पर्याप्त पैसा खर्च होता है और बदले में बहुत कम करता है, यहां और वहां कुछ अतिरिक्त प्रक्रियाएं क्या होती हैं? :) - Richard Holloway


मैं सलाह दूँगा ack

ऊपर की निम्न स्तर निर्देशिका पर जाएं जिसे आप खोजने की हिम्मत करते हैं और फिर टाइप करें:

ack -a "Phrase"

मैं अब वास्तव में grep का उपयोग नहीं करता हूं ack


2
2017-09-24 16:39



एके महान है। आप इसे rpmforge repo से CentOS पर इंस्टॉल कर सकते हैं। देख rpmrepo.org/RPMforge/Using इसे सेट अप करने के विवरण के लिए। - Richard Holloway