Haga una cola -F hasta que coincida con un patrón

Quiero hacer una cola -F en un archivo hasta que coincida con un patrón. Encontré una manera de usar awk, pero en mi humilde opinión, mi comando no está realmente limpio. El problema es que yonecesita para hacerlo en una sola línea, debido a algunas limitaciones.

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

La cola se bloqueará hasta que aparezca EOF en el archivo. Funciona bastante bien El bloque END es obligatorio porque la "salida" de awk no sale inmediatamente. Hace awk evaluar el bloque END antes de salir. El bloque END se cuelga en una llamada de lectura (debido a la cola), por lo que lo último que necesito hacer es escribir otra línea en el archivo para forzar la salida de la cola.

Alguien sabe una mejor manera de hacerlo?

Respuestas a la pregunta(10)

Su respuesta a la pregunta