गैरेप के साथ पूंछ -f को मिलाएं?


26

नमस्ते, मैं एक लॉग फ़ाइल को देखता रहना चाहता हूं, लेकिन मैं अप्रासंगिक चीजें भी नहीं देखना चाहता, मुझे केवल इसमें "फोबार" के साथ कुछ भी करने की दिलचस्पी है।

इसलिए अगर मैं फ़ाइल को पूंछ रहा था तो मैं करूँगा

 tail file | grep "foobar"

अब जब मैं -f विकल्प जोड़ रहा हूं, तो क्या किसी तरह केवल वही सामान दिखाना है जो मुझे चाहिए? grep या अन्य तकनीक का उपयोग?


1
ऐसा प्रतीत होता है कि आपका उत्तर यहाँ पहले से ही लिखा हुआ है: stackoverflow.com/questions/5427483/…
uSlackr

1
ऐसा प्रतीत होता है कि xyr उत्तर प्रश्न में है।
JdeBP

जवाबों:


41

आपने लगभग उत्तर लिखा है, जो है:

tail -f file.log | grep "foobar"

बस।


1
वाह, आप सही हैं, मुझे लगता है कि मुझे यह काम करने की उम्मीद नहीं थी, मैं अभी भी नहीं करता हूं, क्या पाइपिंग ऐसा नहीं होना चाहिए जब एक कमांड ने निष्पादन समाप्त कर दिया हो? मुझे लगता है कि यह दिखाता है कि यह नहीं है, यह हर बार होता है एक आउटपुट, है ना?
user893730

3
नहीं, यह दो कार्यक्रमों को समानांतर में लॉन्च करेगा, और दूसरा एक (grep) जैसे ही पूंछ के STDOUT के बंद हो जाएगा, बाहर निकल जाएगा। यह पाइपों का पूरा बिंदु है, डेटा स्ट्रीमिंग :)
रावचोल

4
जब grepपाइप में अंतिम लाइन होती है, तो इसका आउटपुट लाइन बफर होता है, इसलिए आपको tail -fविलंबित होने के बजाय लाइव का फ़िल्टर्ड आउटपुट दिखाई देता है । ध्यान दें कि यदि आप कई grepकमांड का उपयोग करते हैं , तो किसी भी आउटपुट को पाइप किया गया था, जिसे --line-bufferedइस व्यवहार को बनाए रखने के लिए एक विकल्प (GNU या BSD grep मानकर) की आवश्यकता होगी ।
धोती
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.