【发布时间】:2011-06-28 19:17:09
【问题描述】:
我想对文件执行tail -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 的 exit 不会立即退出。它使awk 到eval 在退出之前成为END 块。 END 块挂在读取调用上(因为 tail),所以我需要做的最后一件事是在文件中写另一行以强制 tail 退出。
有人知道更好的方法吗?
【问题讨论】:
-
您也可以在superuser.com/questions/270529/… 上找到正确答案。