এটি সম্ভবত একটি বাফারিংয়ের সমস্যা। পাইপ ব্যবহার করার সময় অটো-বাফারিং অক্ষম করার জন্য এই এসও পোস্টটি দেখুন । আপনি এই unbuffer
আদেশটি ব্যবহার করতে পারেন expect
:
$ unbuffer tail -f log.txt | egrep 'WARN|ERROR' | tee filtered_output.txt
সম্পাদনা : যেহেতু আপনার দীর্ঘ পাইপলাইন রয়েছে, আপনার সম্ভবত প্রতিটি কমান্ড (শেষ ব্যতীত) আনফফার করা দরকার:
$ unbuffer tail -f log.txt | unbuffer egrep 'WARN|ERROR' | tee filtered_output.txt
সম্পাদনা 2 : সোর্স প্যাকেজ unbuffer
থেকে সাইগউইনে উপলভ্য রয়েছেexpect
(উদাহরণস্বরূপ প্রত্যাশা -20030128-1-src.tar.bz2 , expect/examples
ফোল্ডারে পাওয়া যায় ) তবে এটি একটি খুব স্বল্প স্ক্রিপ্ট। আপনার যদি expect
প্যাকেজটি ইতিমধ্যে ইনস্টল করা থাকে তবে কেবল unbuffer
এটি আপনার /usr/local/bin
ডিরেক্টরিতে ডাকা স্ক্রিপ্টে রেখে দিন :
#!/usr/bin/expect --
# Description: unbuffer stdout of a program
# Author: Don Libes, NIST
eval spawn -noecho $argv
set timeout -1
expect
ডেবিয়ানে, unbuffer
কমান্ডটি expect-dev
প্যাকেজে সরবরাহ করা হয় এবং এটি ইনস্টল করা হয় expect_unbuffer
।