उन्नत `grep` और `find` पैटर्न
सटीक खोजों के लिए `grep` के साथ जटिल नियमित अभिव्यक्तियों और `find` के साथ उन्नत मानदंड का उपयोग करें।
उन्नत `grep` और `find` पैटर्न, CoddyKit पर Linux कमांड लाइन में दक्षता का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Linux कमांड लाइन में दक्षता सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Linux कमांड लाइन में दक्षता पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
बुनियादी खोजों से आगे
फिर से आपका स्वागत है! पिछले पाठों में आपने पाठ को फ़िल्टर करने के लिए grep और फ़ाइलें ढूँढ़ने के लिए find की बुनियादी बातें सीखी हैं।
आज हम उन्नत पैटर्न पर गहराई से विचार करेंगे। इसका अर्थ है अत्यंत सटीक खोजें करने के लिए grep के साथ अधिक शक्तिशाली नियमित अभिव्यक्तियों और find के साथ परिष्कृत मानदंडों का उपयोग करना।
ERE के साथ बेहतर `grep`
मानक grep कमांड बुनियादी नियमित अभिव्यक्तियों (BRE) का उपयोग करता है। अधिक शक्ति के लिए हम अक्सर विस्तारित नियमित अभिव्यक्तियों (ERE) पर स्विच करते हैं।
- ERE को सक्षम करने के लिए
-Eविकल्प (याegrep) का उपयोग करें। - ERE में
+(एक या अधिक),?(शून्य या एक),|(OR), और समूह बनाने के लिए()जैसी सुविधाएँ होती हैं, और इनके लिए एस्केप करने की आवश्यकता नहीं होती।
ERE उदाहरण: एक या अधिक (`+`)
+ मेटाकैरेक्टर पहले आए अक्षर या समूह की एक या अधिक बार की उपस्थिति से मेल खाता है। उदाहरण के लिए, colou+r "colour" और "colouur" से मेल खाएगा, लेकिन "color" से नहीं।
यह उदाहरण चलाकर देखें:
#!/bin/bash
# Create a test file
echo "color" > my_text.txt
echo "colour" >> my_text.txt
echo "colouur" >> my_text.txt
echo "Searching for 'colou+r':"
grep -E "colou+r" my_text.txt
# Clean up
rm my_text.txtERE उदाहरण: शून्य या एक (`?`)
? मेटाकैरेक्टर पहले आए अक्षर या समूह की शून्य या एक बार की उपस्थिति से मेल खाता है। यह वैकल्पिक अक्षरों के लिए उपयोगी है।
उदाहरण के लिए, colou?r "color" (शून्य 'u') और "colour" (एक 'u') से मेल खाएगा।
इसे चलाकर इसका प्रभाव देखें:
#!/bin/bash
# Create a test file
echo "color" > my_text.txt
echo "colour" >> my_text.txt
echo "colouur" >> my_text.txt
echo "Searching for 'colou?r':"
grep -E "colou?r" my_text.txt
# Clean up
rm my_text.txtERE उदाहरण: OR तर्क (`|`)
| मेटाकैरेक्टर OR ऑपरेटर की तरह काम करता है, जिससे आप एक पैटर्न या दूसरे पैटर्न से मेल कर सकते हैं। पैटर्नों को समूहित करने के लिए कोष्ठक () का उपयोग किया जाता है।
उदाहरण के लिए, (cat|dog)s "cats" या "dogs" से मेल खाता है।
यह एक छोटा प्रदर्शन है:
#!/bin/bash
# Create a test file
echo "apple" > fruits.txt
echo "banana" >> fruits.txt
echo "orange" >> fruits.txt
echo "grape" >> fruits.txt
echo "Searching for 'apple' OR 'orange':"
grep -E "apple|orange" fruits.txt
# Clean up
rm fruits.txtउन्नत `find`: संशोधन समय (`-mtime`)
केवल नामों के आधार पर ही नहीं, find यह भी ढूँढ़ सकता है कि फ़ाइलों में आखिरी बार कब संशोधन हुआ था। यहाँ -mtime विकल्प महत्वपूर्ण है।
-mtime N: ठीक N*24 घंटे पहले संशोधित की गई फ़ाइलें।-mtime +N: N*24 घंटे से अधिक समय पहले संशोधित की गई फ़ाइलें।-mtime -N: N*24 घंटे से कम समय पहले संशोधित की गई फ़ाइलें।
उदाहरण के लिए, find . -mtime -7 पिछले 7 दिनों में संशोधित की गई फ़ाइलें ढूँढ़ता है।
उन्नत `find`: पहुँच समय और आकार
आप पहुँच समय (जब फ़ाइल को आखिरी बार पढ़ा गया था) और फ़ाइल के आकार के आधार पर भी खोज सकते हैं:
-atime N: N*24 घंटे पहले आखिरी बार पहुंची गई फ़ाइलें।-size N[cwbkMG]: किसी विशिष्ट आकार वाली फ़ाइलें।
आकार की इकाइयाँ: c (बाइट), w (दो-बाइट शब्द), b (512-बाइट ब्लॉक, डिफ़ॉल्ट), k (KB), M (MB), G (GB)।
उदाहरण: find . -size +1M 1MB से बड़ी फ़ाइलें ढूँढ़ता है।
#!/bin/bash
# Create a test file (1.5MB approx)
head -c 1500K /dev/urandom > large_file.bin
touch -a large_file.bin # Access now for -atime
echo "Finding files larger than 1MB:"
find . -size +1M -name "large_file.bin"
# Clean up
rm large_file.bin`find` के मानदंडों को संयोजित करना
find कमांड शक्तिशाली होते हैं क्योंकि आप कई मानदंडों को संयोजित कर सकते हैं। डिफ़ॉल्ट रूप से, मानदंडों को निहित AND के साथ जोड़ा जाता है।
आप इनका भी उपयोग कर सकते हैं:
-a: स्पष्ट AND (अक्सर इसे छोड़ दिया जाता है)।-o: OR ऑपरेटर।( ): समूह बनाने के लिए कोष्ठक (शेल में इन्हें एस्केप या उद्धृत करना आवश्यक है)।
उदाहरण: find . -type f -name "*.txt" -o -name "*.log" सभी .txt OR .log फ़ाइलें ढूँढ़ता है।
#!/bin/bash
# Create test files
touch file1.txt
touch file2.log
touch file3.md
echo "Finding .txt OR .log files:"
find . \( -name "*.txt" -o -name "*.log" \)
# Clean up
rm file1.txt file2.log file3.mdकार्रवाइयों के लिए `find` और `-exec`
find की सबसे शक्तिशाली सुविधाओं में से एक -exec है, जो आपको मिली प्रत्येक फ़ाइल या डायरेक्टरी पर कोई कमांड चलाने देती है।
-exec COMMAND {} \;: मिली प्रत्येक वस्तु के लिएCOMMANDचलाता है और{}को उस वस्तु के पथ से बदल देता है।\;कमांड के अंत को दर्शाता है।-exec COMMAND {} +: सभी मिली वस्तुओं को आर्ग्युमेंट के रूप में लेकरCOMMANDको एक बार चलाता है। कई फ़ाइलों के लिए यह अधिक कुशल है।
#!/bin/bash
# Create some empty files
touch old_report.txt
touch current_data.log
touch temp_notes.txt
echo "Listing all .txt files found:"
find . -name "*.txt" -exec ls -l {} \;
# Clean up
rm old_report.txt current_data.log temp_notes.txtउन्नत खोज चुनौती
आपको 100KB से बड़ी और पिछले 3 दिनों में संशोधित की गई सभी .log फ़ाइलें ढूँढ़कर उनके नाम प्रिंट करने हैं।
इसे पूरा करने के लिए find विकल्पों का कौन-सा संयोजन उपयोगी होगा?
पुनरावृत्ति: सटीक खोजें
बहुत अच्छा! आपने पाठ और फ़ाइलें खोजने के अपने कौशल को अगले स्तर तक पहुँचा लिया है।
- हमने
grep -Eके साथ विस्तारित नियमित अभिव्यक्तियों (ERE) का उपयोग करना सीखा और अधिक लचीले पैटर्न मिलान के लिए+,?और|का प्रयोग किया। - आपने
-mtime,-atimeऔर-sizeजैसे उन्नतfindमानदंडों का उपयोग करना सीखा। - हमने इन मानदंडों को AND/OR तर्क के साथ संयोजित करना और शक्तिशाली
-execविकल्प का उपयोग करके मिली फ़ाइलों पर कार्रवाइयाँ करना भी सीखा।
कुशल सिस्टम प्रशासन और स्क्रिप्टिंग के लिए ये उपकरण आवश्यक हैं!
एआई शिक्षक के साथ Linux कमांड लाइन में दक्षता सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “उन्नत `grep` और `find` पैटर्न” पाठ निःशुल्क है?
हाँ—“उन्नत `grep` और `find` पैटर्न” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Linux कमांड लाइन में दक्षता पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Linux कमांड लाइन में दक्षता पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“उन्नत `grep` और `find` पैटर्न” में मैं क्या सीखूँगा?
सटीक खोजों के लिए `grep` के साथ जटिल नियमित अभिव्यक्तियों और `find` के साथ उन्नत मानदंड का उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Linux कमांड लाइन में दक्षता का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Linux कमांड लाइन में दक्षता शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Linux कमांड लाइन में दक्षता शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“उन्नत `grep` और `find` पैटर्न” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Linux कमांड लाइन में दक्षता पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Linux कमांड लाइन में दक्षता पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- नियमित अभिव्यक्तियों में दक्षता (Regex)
- उन्नत `grep` और `find` पैटर्न
- कमांड श्रृंखलाबद्ध करने के लिए `xargs`
- sed और tr से बड़े पैमाने पर स्ट्रीम संपादन