Ini mungkin masalah buffering. Lihat posting SO ini tentang menonaktifkan buffer otomatis saat menggunakan pipa . Anda dapat menggunakan unbuffer
perintah dari expect
:
$ unbuffer tail -f log.txt | egrep 'WARN|ERROR' | tee filtered_output.txt
Sunting : Karena Anda memiliki saluran pipa yang lebih panjang, Anda mungkin perlu membatalkan pembuatan setiap perintah (kecuali yang terakhir):
$ unbuffer tail -f log.txt | unbuffer egrep 'WARN|ERROR' | tee filtered_output.txt
Sunting 2 : unbuffer
tersedia di Cygwin dari expect
paket sumber (mis. Harapkan-20030128-1-src.tar.bz2 , ditemukan di expect/examples
folder), tetapi ini skrip yang sangat pendek. Jika Anda expect
sudah menginstal paket, cukup masukkan ini ke dalam skrip bernama unbuffer
di /usr/local/bin
direktori Anda :
#!/usr/bin/expect --
# Description: unbuffer stdout of a program
# Author: Don Libes, NIST
eval spawn -noecho $argv
set timeout -1
expect
Pada Debian, unbuffer
perintah disediakan dalam expect-dev
paket dan diinstal sebagai expect_unbuffer
.