Этот первый конвейер работает нормально (печать "с"):
echo "a" | sed 's/a/b/' | sed 's/b/c/'
Этот не делает то, что я ожидаю (ничего не печатается, когда я подаю "а" в моем fifo):
mkfifo fifo;
cat fifo | sed 's/a/b/' | sed 's/b/c/'
Однако, если я удаляю вторую команду "sed" из последнего конвейера, я получаю "b". Я думаю, что мое понимание каналов и перенаправлений должно быть слишком упрощенным. Может кто-нибудь объяснить мне, как исправить второй случай, чтобы я мог запустить две последовательные команды для содержимого fifo?
(обратите внимание, что это не проблема, специфичная для fifo, то же самое происходит и с netcat). Я написал аналогичный вопрос о netcat, но не получил ответов)