当我在 bash 中运行以下命令时,它会等到程序完成后再刷新所有输出。如果我移除管道,那么它会立即打印每一行。
{ for i in `seq 3` ; do echo $i ; sleep 1 ; done ; } \
| perl -p -e 's,(.*ERROR.*),\e[01;31m\1\e[00m,g' \
| perl -p -e 's,(.*WARNING.*),\e[01;33m\1\e[00m,g' \
| perl -p -e 's,(.*TCPEchoTest.*),\e[01;30m\1\e[00m,g' \
| perl -p -e 's,(.*enters.*),\e[00;33m\1\e[00m,g'
我怎样才能使用管道并且仍然可以立即打印每一行?