सवाल टर्मिनल में कुछ पाठ के साथ फाइलें कैसे खोजें I


मैं उन सभी फ़ाइलों को ढूंढना चाहता हूं जिनमें टेक्स्ट की एक निश्चित स्ट्रिंग है। आप टर्मिनल में ऐसा कैसे करेंगे?


131
2017-07-13 09:42


मूल


यदि आप एक तेज परिणाम चाहते हैं, तो स्पॉटलाइट का उपयोग करें, हालांकि। इसके अलावा यदि आप उन फ़ाइलों को ढूंढना चाहते हैं जो आवश्यक रूप से फ़ाइल को पीडीएफ या ओडीएफ जैसे फ़ाइल में संग्रहीत नहीं करते हैं। - Joey
अच्छी सलाह है, लेकिन मेरे मामले में मुझे यकीन नहीं है कि फ़ाइलों को सूचीबद्ध किया गया है क्योंकि वे नेटवर्क ड्राइवरों पर हैं। और वे एक विशेष कार्यक्रम से संबंधित एक्सएमएल फाइलें भी हैं। - Svish
पर एक नज़र डालें unix.stackexchange.com/a/37932/213832 यह समाधान अच्छी तरह से काम करता है - boyd4715


जवाब:


grep -r 'text goes here' path_goes_here

236
2017-07-13 09:47



मैं सुझाव दूंगा man grep grep के सभी अद्भुत विकल्पों को खोजने के लिए - Ludovic Kuty
यह पथ में मौजूद प्रत्येक फ़ाइल को सूचीबद्ध करता है और जोड़ता है: No such file or directory  मैं सिर्फ पाठ घटनाओं की सूची प्राप्त करने की कोशिश कर रहा हूं। हम उस सूची को कैसे प्राप्त कर सकते हैं? - CP3O
समझ गया: grep -lr "text pattern" ./ -s ; grep -lr "text pattern" [PATH OF PARENT] -s - CP3O


स्पॉटलाइट का प्रयोग करें

mdfind "text goes here"
mdfind -onlyin /home/user/Desktop -live "live update"

देखने के लिए मत भूलना:

man mdfind

24
2017-08-12 22:38



क्या यह उन फ़ाइलों के लिए काम करेगा जो स्पॉटलाइट इंडेक्स नहीं करते हैं (यानी छुपा फ़ोल्डरों, सिस्टम कॉन्फ़िगरेशन फाइलों आदि के अंदर फ़ाइलें)? - Peter Berg
Grep .xlsx फ़ाइलों को पार्स नहीं लग रहा है, लेकिन यह ठीक काम किया। एक और आसान उदाहरण: mdfind -onlyin। "Searchtext" - FvD


  1. एके के माध्यम से

brew install ack ack "text goes here"

  1. खोज के माध्यम से

find . |grep "text goes here"

  1. Grep के माध्यम से

grep -RnslI "text goes here"


7
2018-03-03 14:07





आप अपने स्वाद और जरूरतों के आधार पर नीचे में से एक चुन सकते हैं। मान लीजिए कि आपको पाठ वाली फाइलों की खोज करने की आवश्यकता है - "async", वर्तमान निर्देशिका में पुनरावर्ती रूप से, आप नीचे दिए गए तरीकों में से एक में ऐसा कर सकते हैं:

Grep का उपयोग करना enter image description here

एके का उपयोग करना enter image description here


1
2018-06-01 08:00





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

No such file or directory यह वही है जो मैं उन फ़ाइलों के साथ देखता हूं जिनमें पैटर्न नहीं है।

यदि आप इसके बजाय जोड़ते हैं -s आदेश के लिए, जैसा कि: grep -lr "text pattern" ./ -s ; grep -lr "text pattern" [PATH DIRECTORY] -s प्रयोग किया जाता है, यह केवल आपको दिखाएगा कि कौन सी फाइलें पैटर्न हैं।

इसी तरह अगर grep -nr "text pattern" ./ -s ; grep -nr "text pattern" [PATH OF DIRECTORY] -s कमांड का उपयोग किया जाता है, यह फ़ाइल को प्लस लाइन नंबर और पैटर्न की घटना प्रिंट करता है।

अगर मेरी समझ गलत है तो कृपया मुझे सही करें।

संदर्भ: मैं grep कैसे 'ऐसी कोई फ़ाइल या निर्देशिका' त्रुटियों को मुद्रित नहीं कर सकता?


1
2018-06-01 15:27



उन अजीब से बचने का एक और तरीका ऐसी कोई फाइल नहीं त्रुटियों, पाइप stderr शून्य करने के लिए है। grep ... 2>/dev/null। यह समाधान अधिकांश प्रोग्रामों के लिए काम करता है, क्योंकि वे stderr स्ट्रीम पर त्रुटि संदेशों की रिपोर्ट करते हैं, stdout नहीं। मैंने इस समाधान का कई बार उपयोग किया है findजैसा कि यह कहेंगे अनुमति नहीं मिली कई फाइलों के लिए। - jpaugh
(1) यदि आप प्राप्त कर रहे हैं No such file or directory मौजूद फाइलों के लिए संदेश, या तो आप कुछ गलत कर रहे हैं, या आपका सिस्टम टूटा हुआ है। (2) क्या करता है [PATH OF PARENT] कुछ भी करना है? - G-Man
@ जी-मैन मैंने शो दिखाने का जवाब संपादित किया [PATH OF DIRECTORY] सिर्फ किसी को अपरिचित जानना चाहते हैं कि मैंने क्यों रखा था ./ - CP3O
@ जी-मैन मैं एक मैक का उपयोग कर रहा हूं उबंटू नहीं, यह सुनिश्चित नहीं करता कि मेरा सिस्टम कैसे टूटा जाएगा, मैंने अभी तक कुछ भी नहीं किया है। - CP3O