मॉड्यूल पाठ (2/2)
पाइपलाइन और फिल्टर (grep और |)
लिनक्स कमांड लाइन की सबसे शक्तिशाली विशेषताओं में से एक विभिन्न कमांड को कनेक्ट करने की क्षमता है ताकि एक का आउटपुट अगले के लिए इनपुट बन जाए। यह तकनीक पाइपलाइन का उपयोग करके पूरी की जाती है और इसे आमतौर पर टेक्स्ट-फ़िल्टरिंग कमांड grep के साथ जोड़ा जाता है।
फ़िल्टरिंग टेक्स्ट: grep
grep (ग्लोबल रेगुलर एक्सप्रेशन प्रिंट) कमांड एक या अधिक फ़ाइलों के भीतर पाठ की एक विशिष्ट स्ट्रिंग की खोज करता है और मिलान पंक्तियों को प्रिंट करता है:
grep "string" [file_name]grep के लिए उपयोगी विकल्प
grep -i "error" server.log: एक केस-असंवेदनशील खोज करता है ("त्रुटि", "त्रुटि", या "त्रुटि" ढूंढते हुए अपरकेस और लोअरकेस के बीच अंतर को अनदेखा करता है)।grep -n "connection" server.log: मिलान लाइन के साथ लाइन नंबर प्रदर्शित करता है।grep -v "INFO" server.log: खोज को उल्टा करता है, केवल वही पंक्तियाँ प्रदर्शित करता है जिनमें निर्दिष्ट कीवर्ड नहीं होता है।
चेनिंग कमांड: पाइपलाइन |
पाइपलाइन ऑपरेटर को वर्टिकल बार | द्वारा दर्शाया जाता है। यह बाईं ओर के कमांड के मानक आउटपुट को सीधे दाईं ओर के कमांड के मानक इनपुट पर भेजता है:
[command1] | [command2]उदाहरण के लिए, यदि कोई लॉग फ़ाइल बड़ी है और आप पूरी फ़ाइल को प्रिंट किए बिना एक विशिष्ट शब्द खोजना चाहते हैं, तो आप cat और grep को जोड़ सकते हैं:
cat logs/server.log | grep ERRORयह संपूर्ण server.log फ़ाइल को cat के साथ पढ़ता है, लेकिन इसे स्क्रीन पर प्रिंट करने के बजाय, यह स्ट्रीम को grep पर पाइप करता है, जो केवल "ERROR" शब्द वाली पंक्तियों को फ़िल्टर और प्रदर्शित करता है।
उपयोग के उदाहरण और सामान्य त्रुटियाँ
यदि आप किसी फ़ाइल में कोई लोअरकेस शब्द (उदाहरण के लिए "पोस्ट") खोजते हैं जिसमें यह केवल अपरकेस में है (उदाहरण के लिए "पोस्ट"), तो grep कुछ भी नहीं लौटाएगा:
grep "post" logs/access.log
# Output: (no results, search is case-sensitive by default)लाइन को उसके मामले की परवाह किए बिना ढूंढने के लिए, -i ध्वज का उपयोग करें:
grep -i "post" logs/access.log
# Output:
# 127.0.0.1 - - [22/May/2026:10:10:00 +0000] "POST /login HTTP/1.1" 401 234यदि निर्दिष्ट फ़ाइल मौजूद नहीं है, तो grep एक त्रुटि लौटाएगा:
grep "ERROR" nonexistent_file.log
# Output:
# grep: nonexistent_file.log: No such file or directoryखुद कोशिश करना
अभ्यास 1: लॉग फ़ाइलों में त्रुटियों की खोज करें
केवल 'ERROR' (केस-सेंसिटिव) शब्द वाली पंक्तियों को निकालने और प्रदर्शित करने के लिए 'logs/server.log' फ़ाइल को फ़िल्टर करें।
संकेत दिखाएँ
खोजने के लिए शब्द और फ़ाइल पथ के बाद grep कमांड का उपयोग करें।
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम 2: पाइपलाइन और फिल्टर
फ़ाइल 'लॉग/सर्वर.लॉग' को पढ़ने के लिए कैट कमांड का उपयोग करें और केवल 'चेतावनी' शब्द वाली पंक्तियों को फ़िल्टर और प्रिंट करने के लिए ग्रेप कमांड पर इसके आउटपुट को पाइप (|) करें।
संकेत दिखाएँ
पाइप '|' का उपयोग करके कैट लॉग्स/सर्वर.लॉग को ग्रेप वॉर्निंग से कनेक्ट करें। चरित्र।
3 प्रयासों के बाद समाधान उपलब्ध है
अभ्यास 3: केस-असंवेदनशील खोज
उचित ग्रेप ध्वज का उपयोग करके 'लॉग/एक्सेस.लॉग' फ़ाइल में 'पोस्ट' शब्द (या तो अपरकेस या लोअरकेस) वाली सभी पंक्तियों को खोजें।
संकेत दिखाएँ
केस संवेदनशीलता को अनदेखा करने के लिए -i विकल्प के साथ grep का उपयोग करें।
3 प्रयासों के बाद समाधान उपलब्ध है