相关疑难解决方法(0)

如何通过管道从`tail -f`读取一行,然后终止?

我想通过对文件的更改进行跟踪tail -f,然后grep在终止之前打印出与命令匹配的第一行。什么是最简单的方法来做到这一点?到目前为止,我一直在尝试这样的事情:

tail -f foo.log | grep 'bar' | head -1
Run Code Online (Sandbox Code Playgroud)

然而,管道只是挂起,大概是由于缓冲。我也试过

tail -f foo.log | grep --line-buffered 'bar' | head -1
Run Code Online (Sandbox Code Playgroud)

这会打印出该行,但除非我点击 ^C,否则该过程不会终止,大概是因为需要第二行输入来终止head -1。解决这个问题的最佳方法是什么?

unix bash

9
推荐指数
1
解决办法
5758
查看次数

标签 统计

bash ×1

unix ×1