我想做一个tail -F
在文件上直到匹配模式。我找到了一种使用方法awk
,但恕我直言,我的命令并不是很干净。问题是我need由于某些限制,只能用一行来完成。
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
to eval
退出之前的 END 块。 END 块挂在读取调用上(因为 tail),所以我需要做的最后一件事是在文件中写入另一行以强制 tail 退出。
有人知道更好的方法吗?
使用尾巴--pid
当 shell 死亡时,option 和 tail 将停止。无需额外添加tailed file.
sh -c 'tail -n +0 --pid=$$ -f /tmp/foo | { sed "/EOF/ q" && kill $$ ;}'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)