มันอาจเป็นปัญหาการบัฟเฟอร์ เห็นนี้โพสต์อื่น ๆ ปิดการใช้งานอัตโนมัติเมื่อใช้บัฟเฟอร์ท่อ คุณสามารถใช้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มีให้ใน Cygwin จากexpectซอร์สโค้ด (เช่น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
ใน Debian ที่unbufferคำสั่งให้ไว้ในแพคเกจและติดตั้งเป็นexpect-devexpect_unbuffer