"Grep कीवर्ड" टर्मिनल को हमेशा के लिए खड़ा करने का कारण क्यों है?


25

जब मैं टर्मिनल में "grep डॉक" टाइप करें, यह सिर्फ कुछ नहीं करते, कुछ और करने से टर्मिनल रोक इससे पहले कि मैं का उपयोग कर से बचने के Ctrl+ Cया Z

मुझे पता है कि यह नहीं है कि मुझे grep का उपयोग कैसे करना है, लेकिन यह उत्सुक है कि ऐसा क्यों हो रहा है।

जवाबों:


40

grep डिफ़ॉल्ट खोज मानक इनपुट द्वारा यदि कोई फाइल नहीं दी जाती है:

grep दिए गए इनपुट FILE को खोजता है (या मानक इनपुट अगर कोई फाइल नाम नहीं है, या यदि दिए गए PATTERN से मेल खाने वाली लाइनों के लिए एकल हाइफ़न-माइनस (-) फ़ाइल नाम के रूप में दिया गया है)। डिफ़ॉल्ट रूप से, grep मिलान लाइनों को प्रिंट करता है।

यदि आप बस grep docgrep आने के लिए मानक इनपुट की उम्मीद करते हैं और उसके अंदर खोज करते हैं ( टर्मिनल के बीच <और भागों में प्रवेश न करें >, तो ये टिप्पणियां हैं):

$ grep doc
a b c <PRESS ENTER HERE>
doc <NO MATCH WAS FOUND IN PREVIOUS LINE, TYPE doc AND PRESS ENTER AGAIN>
doc <MATCH WAS FOUND>

6
OP "grep" सत्र को समाप्त करने के लिए खुद से Ctrl + D को एक पंक्ति में भी दबा सकता है।
केविन

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

20
@KarlBielefeldt: यह वास्तव में जटिल रीजैक्स को डिबग करने का एक सुविधाजनक तरीका है। आप कुछ ऐसा चला सकते हैं grep '([a-z]+[0-9]*.x){2,3}'और अपने कीबोर्ड पर नमूना लाइनों का एक गुच्छा टाइप कर सकते हैं ताकि यह सुनिश्चित हो सके कि आप क्या सोचते हैं। जो रेखाएँ मेल खाती हैं, वे प्रतिध्वनित होंगी, जो लाइनें नहीं होंगी।
नैट एल्ड्रेडगे

1
@NateEldredge: इसके लिए एक व्यावहारिक उदाहरण देने के लिए धन्यवाद! मैं हमेशा मुख्य रूप से सैद्धांतिक होने के नाते grep और कैट जैसी चीजों के अशक्त- arg आह्वान को देखता था।
भूलभुलैया

1
@ लैब्रिंथ वे बिल्कुल भी सैद्धांतिक नहीं हैं, वे हर समय पाइपिंग करते समय उपयोग किए जाते हैं, जैसेsomecommand | grep foo
बामर

14

grep इनपुट की प्रतीक्षा है

से man grep:

[...]
DESCRIPTION
       grep  searches  the named input FILEs (or standard input if no files are named
[...]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.