मुख्य सामग्री पर जाएं
मॉड्यूल 3 · पाठ 2 का 2पाठ्यक्रम में 7/11~15 min
मॉड्यूल पाठ (2/2)

पाइपलाइन और फिल्टर (grep और |)

लिनक्स कमांड लाइन की सबसे शक्तिशाली विशेषताओं में से एक विभिन्न कमांड को कनेक्ट करने की क्षमता है ताकि एक का आउटपुट अगले के लिए इनपुट बन जाए। यह तकनीक पाइपलाइन का उपयोग करके पूरी की जाती है और इसे आमतौर पर टेक्स्ट-फ़िल्टरिंग कमांड grep के साथ जोड़ा जाता है।


फ़िल्टरिंग टेक्स्ट: grep

grep (ग्लोबल रेगुलर एक्सप्रेशन प्रिंट) कमांड एक या अधिक फ़ाइलों के भीतर पाठ की एक विशिष्ट स्ट्रिंग की खोज करता है और मिलान पंक्तियों को प्रिंट करता है:

Bash
grep "string" [file_name]

grep के लिए उपयोगी विकल्प

  • grep -i "error" server.log: एक केस-असंवेदनशील खोज करता है ("त्रुटि", "त्रुटि", या "त्रुटि" ढूंढते हुए अपरकेस और लोअरकेस के बीच अंतर को अनदेखा करता है)।
  • grep -n "connection" server.log: मिलान लाइन के साथ लाइन नंबर प्रदर्शित करता है।
  • grep -v "INFO" server.log: खोज को उल्टा करता है, केवल वही पंक्तियाँ प्रदर्शित करता है जिनमें निर्दिष्ट कीवर्ड नहीं होता है।

चेनिंग कमांड: पाइपलाइन |

पाइपलाइन ऑपरेटर को वर्टिकल बार | द्वारा दर्शाया जाता है। यह बाईं ओर के कमांड के मानक आउटपुट को सीधे दाईं ओर के कमांड के मानक इनपुट पर भेजता है:

Bash
[command1] | [command2]

उदाहरण के लिए, यदि कोई लॉग फ़ाइल बड़ी है और आप पूरी फ़ाइल को प्रिंट किए बिना एक विशिष्ट शब्द खोजना चाहते हैं, तो आप cat और grep को जोड़ सकते हैं:

Bash
cat logs/server.log | grep ERROR

यह संपूर्ण server.log फ़ाइल को cat के साथ पढ़ता है, लेकिन इसे स्क्रीन पर प्रिंट करने के बजाय, यह स्ट्रीम को grep पर पाइप करता है, जो केवल "ERROR" शब्द वाली पंक्तियों को फ़िल्टर और प्रदर्शित करता है।


उपयोग के उदाहरण और सामान्य त्रुटियाँ

यदि आप किसी फ़ाइल में कोई लोअरकेस शब्द (उदाहरण के लिए "पोस्ट") खोजते हैं जिसमें यह केवल अपरकेस में है (उदाहरण के लिए "पोस्ट"), तो grep कुछ भी नहीं लौटाएगा:

Bash
grep "post" logs/access.log
# Output: (no results, search is case-sensitive by default)

लाइन को उसके मामले की परवाह किए बिना ढूंढने के लिए, -i ध्वज का उपयोग करें:

Bash
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 एक त्रुटि लौटाएगा:

Bash
grep "ERROR" nonexistent_file.log
# Output:
# grep: nonexistent_file.log: No such file or directory

खुद कोशिश करना

अभ्यास 1: लॉग फ़ाइलों में त्रुटियों की खोज करें

व्यायाम#linux.m3.l2.e1
प्रयास: 0लोड हो रहा है...

केवल 'ERROR' (केस-सेंसिटिव) शब्द वाली पंक्तियों को निकालने और प्रदर्शित करने के लिए 'logs/server.log' फ़ाइल को फ़िल्टर करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

खोजने के लिए शब्द और फ़ाइल पथ के बाद grep कमांड का उपयोग करें।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम 2: पाइपलाइन और फिल्टर

व्यायाम#linux.m3.l2.e2
प्रयास: 0लोड हो रहा है...

फ़ाइल 'लॉग/सर्वर.लॉग' को पढ़ने के लिए कैट कमांड का उपयोग करें और केवल 'चेतावनी' शब्द वाली पंक्तियों को फ़िल्टर और प्रिंट करने के लिए ग्रेप कमांड पर इसके आउटपुट को पाइप (|) करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

पाइप '|' का उपयोग करके कैट लॉग्स/सर्वर.लॉग को ग्रेप वॉर्निंग से कनेक्ट करें। चरित्र।

3 प्रयासों के बाद समाधान उपलब्ध है

अभ्यास 3: केस-असंवेदनशील खोज

व्यायाम#linux.m3.l2.e3
प्रयास: 0लोड हो रहा है...

उचित ग्रेप ध्वज का उपयोग करके 'लॉग/एक्सेस.लॉग' फ़ाइल में 'पोस्ट' शब्द (या तो अपरकेस या लोअरकेस) वाली सभी पंक्तियों को खोजें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

केस संवेदनशीलता को अनदेखा करने के लिए -i विकल्प के साथ grep का उपयोग करें।

3 प्रयासों के बाद समाधान उपलब्ध है