我想在文件上做一个尾部-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块在读取调用时挂起(因为尾部),所以我需要做的最后一件事就是在文件中写入另一行来强制尾部退出.
有人知道更好的方法吗?