Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Linux

लिनक्स पर किसी फ़ाइल में विशिष्ट शब्द कैसे खोजें

डिफ़ॉल्ट रूप से, अधिकांश खोज टूल फ़ाइल नामों को देखते हैं, फ़ाइल सामग्री को नहीं। हालांकि, सबसे प्रसिद्ध GNU खोज प्रोग्राम, grep, सही फ्लैग्स के साथ फ़ाइलों के अंदर देखेगा। यहां हम आपको दिखाएंगे कि आप लिनक्स पर किसी फ़ाइल में विशिष्ट शब्द(शब्दों) को कैसे ढूंढ सकते हैं।

grep का उपयोग करके किसी फ़ाइल में विशिष्ट शब्द खोजें

डिफ़ॉल्ट रूप से, grep फ़ाइलों की सामग्री के साथ-साथ उनके फ़ाइल नामों के माध्यम से खोज करता है। यह अधिकांश लिनक्स सिस्टम पर शामिल है और आम तौर पर डिस्ट्रोस में समान है। उस ने कहा, छोटे या कम शक्तिशाली लिनक्स बॉक्स एक अलग कमांड चलाना पसंद कर सकते हैं, जैसे ack।

फ़ाइल कैसे एन्कोडेड है, इस पर निर्भर करते हुए, grep हमेशा अंदर देखने में सक्षम नहीं हो सकता है। लेकिन अधिकांश टेक्स्ट-आधारित फॉर्मेट के लिए, grep निर्दिष्ट पैटर्न के लिए फ़ाइल के टेक्स्ट को स्कैन कर सकता है।

grep -Rw '/path/to/search/' -e 'pattern'

-R फ्लैग grep को रिकर्सिव मोड पर सेट करता है, निर्दिष्ट निर्देशिका के भीतर निहित सभी निर्देशिकाओं के माध्यम से नेविगेट करता है। -w फ्लैग पूरे शब्द मिलान के लिए खोज करता है। इसका मतलब है कि 'red' केवल व्हाइटस्पेस कैरेक्टर्स से घिरे 'red' से मेल खाएगा न कि 'redundant' या 'tired' से। -e फ्लैग खोजने के लिए पैटर्न को पूर्वनिर्धारित करता है। यह डिफ़ॉल्ट रूप से नियमित अभिव्यक्तियों का समर्थन करता है।

grep को तेज करने के लिए, आप खोज को कुछ फ़ाइल प्रकारों तक सीमित करने के लिए --exclude और --include फ्लैग्स का उपयोग कर सकते हैं। उदाहरण के लिए, --exclude=*.csv .csv एक्सटेंशन वाली किसी भी फ़ाइल के भीतर खोज नहीं करेगा। दूसरी ओर, --include=*.txt केवल .txt एक्सटेंशन वाली फ़ाइलों के भीतर खोज करेगा। फ्लैग को grep कमांड के तुरंत बाद जोड़ा जा सकता है, जैसा कि नीचे दिखाया गया है:

grep --exclude=*.csv -Rw '/path/to/search' -e 'pattern'

आप निर्दिष्ट निर्देशिकाओं को भी बाहर कर सकते हैं, नीचे दिए गए प्रारूप का पालन करके:

grep --exclude-dir={dir1,dir2,*_old} -Rw '/path/to/search' -e 'pattern'

यह कमांड वर्तमान कार्य निर्देशिका में dir1, dir2, या *_old पैटर्न से मेल खाने वाले नाम वाली किसी भी निर्देशिका में खोज नहीं करेगा, उन्हें खोज प्रक्रिया से हटा देगा। यह वर्तमान कार्य निर्देशिका में अन्य सभी फ़ाइलों पर निर्दिष्ट रिकर्सिव, पूर्ण-शब्द मिलान खोज को निष्पादित करेगा।

find का उपयोग करके किसी फ़ाइल में विशिष्ट शब्द खोजें

हालांकि find कमांड का सिंटैक्स grep से अधिक जटिल है, कुछ इसे पसंद करते हैं।

find . -name "*.php" -exec grep "pattern" {} \;

यह कमांड खोजी गई फ़ाइलों को grep में खोज के लिए पास करने के लिए find के -exec फ्लैग का उपयोग करेगा। सिंटैक्स की चतुर व्यवस्था के साथ, आप उन विशिष्ट फ़ाइल प्रकारों का पता लगाने के लिए find के तेज़ फ़ाइल-सिस्टम खोज का उपयोग कर सकते हैं जिन्हें आप खोजना चाहते हैं, फिर उन्हें grep में पाइप करके फ़ाइलों के अंदर खोज सकते हैं।

ध्यान दें कि find केवल फ़ाइल नामों को देखता है, सामग्री को नहीं। इसलिए फ़ाइल टेक्स्ट और सामग्री को खोजने के लिए grep की आवश्यकता होती है। सामान्य grep फ्लैग्स -exec फ्लैग के भीतर पूरी तरह से चालू होने चाहिए।

ack का उपयोग करके किसी फ़ाइल में विशिष्ट शब्द खोजें

ack कमांड संभवतः सबसे तेज़ खोज टूल है, लेकिन यह उपरोक्त विकल्पों जितना लोकप्रिय नहीं है। नीचे दिया गया कमांड वर्तमान निर्देशिका के भीतर खोज करेगा।

ack 'pattern'

यदि आप किसी विशिष्ट फ़ाइल या निर्देशिका के भीतर खोजना चाहते हैं, तो आप उस फ़ाइल या पूर्ण पथनाम को अपनी खोज में जोड़ सकते हैं।

ack 'pattern' /path/to/file.txt

निष्कर्ष

अधिकांश स्थितियों में अधिकांश लोगों के लिए, grep सबसे अच्छा व्यापक रूप से उपलब्ध खोज टूल है। आप तेज़ खोज विकल्पों के लिए RipGrep जैसे अन्य खोज टूल भी देख सकते हैं।

  1. लिनक्स में Zip फ़ाइलें कैसे निकालें लिनक्स में Zip फ़ाइलें कैसे निकालें

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

  1. विंडोज 10 में लापता फाइलें तुरंत ढूंढें: चरण-दर-चरण गाइड विंडोज 10 में लापता फाइलें तुरंत ढूंढें: चरण-दर-चरण गाइड

    एक मायावी फ़ाइल या प्रोग्राम की तलाश है? विंडोज सर्च आपको जो खो गया है उसे ढूंढने में मदद कर सकता है। सर्च विंडोज और इसके इंटरफ़ेस में गहराई से एकीकृत है। एक नई खोज शुरू करने के लिए, बस Win+S कीबोर्ड शॉर्टकट दबाएं। उस फ़ाइल के भीतर ज्ञात शब्द या वर्णों का सेट टाइप करने का प्रयास करें जिसे आप ढूंढ रह

  1. लिनक्स पर फाइलों को स्थायी रूप से हटाएं: चरण-दर-चरण गाइड लिनक्स पर फाइलों को स्थायी रूप से हटाएं: चरण-दर-चरण गाइड

    लिनक्स ऑपरेटिंग सिस्टम में, एक डिलीट की गई फाइल ट्रैश में अपना रास्ता खोज लेती है। जब ट्रैश खाली हो जाता है, तो फाइल सिस्टम से डिलीट हो जाती है। हालांकि, रिकवरी सॉफ़्टवेयर की बढ़ती मांग के साथ, ट्रैश से डिलीट की गई फाइलों को एक निश्चित सीमा तक रिकवर किया जा सकता है। इसका मतलब है कि जो फाइल ट्रैश से