Muhtemelen bir tamponlama sorunudur. Borular kullanırken otomatik tamponlamayı devre dışı bırakmak için bu SO yayına bakın . unbuffer
Komutu şuradan kullanabilirsiniz expect
:
$ unbuffer tail -f log.txt | egrep 'WARN|ERROR' | tee filtered_output.txt
Düzenleme : Daha uzun bir boru hattınız olduğundan, muhtemelen her komutun çözülmesini kaldırmanız gerekir (sonuncusu hariç):
$ unbuffer tail -f log.txt | unbuffer egrep 'WARN|ERROR' | tee filtered_output.txt
Düzenleme 2 : unbuffer
den Cygwin mevcuttur expect
(örn kaynak paketinin bekliyoruz-20030128-1-src.tar.bz2 , bulunan expect/examples
klasöre), ancak çok kısa bir senaryo. Eğer varsa expect
zaten yüklü paketi, basitçe adında bir komut dosyası içine koymak unbuffer
için de /usr/local/bin
dizindeki:
#!/usr/bin/expect --
# Description: unbuffer stdout of a program
# Author: Don Libes, NIST
eval spawn -noecho $argv
set timeout -1
expect
Debian'da, unbuffer
komut expect-dev
pakette verilir ve olarak yüklenir expect_unbuffer
.