У меня есть программа, которая записывает в 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?