গ্রেপ সঙ্গে লেজ -f একত্রিত?


26

হাই, আমি একটি লগ ফাইলটি দেখতে চাই, তবে আমি অপ্রাসঙ্গিক জিনিসগুলিও দেখতে চাই না, আমি কেবল "ফুবার" এর সাথে কোনও বিষয়েই আগ্রহী।

সুতরাং আমি যদি ফাইলটি টেলিং করতাম তবে আমি করতাম

 tail file | grep "foobar"

এখন যেহেতু আমি -f বিকল্পটি যুক্ত করছি, কেবল আমার পছন্দসই জিনিসগুলি দেখানোর কোনও উপায় আছে? গ্রেপ বা অন্য কৌশল ব্যবহার করছেন?


1
দেখে মনে হচ্ছে আপনার উত্তর ইতিমধ্যে এখানে লেখা হয়: stackoverflow.com/questions/5427483/...
uSlackr

1
দেখা যাচ্ছে যে জাইয়ের উত্তরটি প্রশ্নে রয়েছে।
JdeBP

উত্তর:


41

আপনি প্রায় উত্তর লিখেছিলেন, যা:

tail -f file.log | grep "foobar"

এটাই.


1
ওহ, আপনি ঠিক বলেছেন, আমি মনে করি আমি এটি কাজ করার আশা করিনি, আমি এখনও করি না, যখন কোনও কমান্ড কার্য সম্পাদন শেষ করে পাইপিংয়ের কথা বলে না? আমি অনুমান করি এটি দেখায় যে এটি তা নয়, প্রতিবারই সেখানে কোনও আউটপুট ঘটে, তাই না?
ব্যবহারকারী 893730

3
না এটি দুটি প্রোগ্রামকে সমান্তরালে চালু করবে এবং দ্বিতীয়টি (গ্রেপ) লেজের স্টাডিআউট বন্ধ হওয়ার সাথে সাথে প্রস্থান করবে। এটি পাইপগুলির পুরো পয়েন্ট, ডেটা স্ট্রিমিং :)
রাভাচল

4
grepপাইপের শেষ লাইনটি কখন , এর আউটপুটটি লাইন বাফার হয়, তাই আপনি tail -fবিলম্বের পরিবর্তে লাইভের ফিল্টারড আউটপুট দেখতে পান । নোট করুন যে আপনি যদি একাধিক grepকমান্ড ব্যবহার করতে চান তবে --line-bufferedএই আচরণটি চালিয়ে যাওয়ার জন্য যার আউটপুটটি পাইপ করা হয়েছিল তার কোনও বিকল্পের (জিএনইউ বা বিএসডি গ্রেপ ধরে) প্রয়োজন হবে।
ঘোটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.