Как остановить буферизацию sed?

У меня есть программа, которая записывает в fd3, и я хочу обработать эти данные с помощью grep и sed. Вот как выглядит код на данный момент:


exec 3> >(grep "good:"|sed -u "s/.*:\(.*\)/I got: \1/")
echo "bad:data1">&3
echo "good:data2">&3

Ничего не выводится, пока я не выполню

exec 3> & -

Затем все, что я хотел, наконец прибыло, как я ожидал:

I got: data2

Похоже, что ответ немедленно если я использую только grep или только sed, но их смешивание, кажется, вызывает какую-то буферизацию. Как я могу получить немедленный вывод из fd3?

8
задан User1 23 November 2010 в 16:16
поделиться