Это ничего не будет печатать, пока шаблон, а затем не выходить из хвоста. Провал.

у сделать хвост -F для файла до совпадения с шаблоном. Я нашел способ с помощью awk, но ИМХО моя команда не совсем чистая. Проблема в том, что янужно сделать это только в одной строке, из-за некоторых ограничений.

tail -n +0 -F /tmp/foo | \
awk -W interactive '{if ($1 == "EOF") exit; print} END {system("echo EOF >> /tmp/foo")}'

Хвост будет блокироваться, пока EOF не появится в файле. Это работает довольно хорошо. Блок END является обязательным, потому что "выход" awk не выходит сразу. Это заставляет awk вычислять блок END перед выходом. Блок END зависает при вызове чтения (из-за tail), поэтому последнее, что мне нужно сделать, - это написать еще одну строку в файле, чтобы принудительно завершить выполнение tail.

Кто-нибудь знает лучший способ сделать это?