फ़ाइलों और निर्देशिकाएँ में एक विशिष्ट स्ट्रिंग या शब्द कैसे खोजें


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

यह काम करने का एक सरल तरीका है grep पैटर्न खोज टूल का उपयोग करके, यूनिक्स जैसी प्रणालियों पर फ़ाइलों या निर्देशिकाओं से पैटर्न और शब्द खोजने के लिए एक शक्तिशाली, कुशल, विश्वसनीय और सबसे लोकप्रिय कमांड-लाइन उपयोगिता है।

नीचे दिया गया आदेश सभी फ़ाइलों की सूची देगा जिसमें पाठ " check_root " है, जो पुनरावर्ती और आक्रामक रूप से ~/bin निर्देशिका खोज रहा है।

$ grep -Rw ~/bin/ -e 'check_root'

जहां -R विकल्प बताता है कि grep प्रत्येक निर्देशिका के तहत सभी फ़ाइलों को पढ़ने के लिए, पुनरावर्ती, प्रतीकात्मक लिंक का पालन केवल तभी करते हैं जब वे कमांड लाइन पर हों और विकल्प -w इसे केवल उन्हीं पंक्तियों का चयन करने का निर्देश देता है, जो पूरे शब्दों से मेल खाते हैं, और -e का उपयोग स्ट्रिंग (पैटर्न) को खोजने के लिए किया जाता है।

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

 
$ sudo grep -Rw / -e 'check_root'	

दिखाए गए मामलों के अंतर को अनदेखा करने के लिए -i विकल्प दिखाए गए हैं:

$ grep -Riw ~/bin/ -e 'check_root'

यदि आप उस सटीक रेखा को जानना चाहते हैं जहाँ पाठ का तार मौजूद है, तो -n विकल्प शामिल करें।

$ grep -Rinw ~/bin/ -e 'check_root'

मान लें कि जिस निर्देशिका में आप खोजना चाहते हैं, उसमें कई प्रकार की फाइलें हैं, आप उदाहरण के लिए खोजे जाने वाली फाइलों के प्रकार को भी निर्दिष्ट कर सकते हैं, उनके एक्सटेंशन का उपयोग करके - शामिल करें विकल्प।

यह उदाहरण grep को केवल सभी .sh फ़ाइलों के माध्यम से देखने का निर्देश देता है।

$ grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'

इसके अलावा, निम्नलिखित कमांड का उपयोग करके एक से अधिक पैटर्न की खोज करना संभव है।

$ grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'

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