通过 grep 管道传输的 tail -f 不输出到文件,而是输出到控制台

pyI*_*Sky 6 grep tail stdout

我正在使用以下命令

tail -f /mydir/myfile |  grep "searchterm" >> outfile
Run Code Online (Sandbox Code Playgroud)

没有-f它就可以正常工作,但是有了-f我需要的 ,就不会将任何内容写入文件。以下输出到控制台就好了

tail -f /mydir/myfile |  grep "searchterm"
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能让我的命令正确地写入文件?

Mat*_*att 10

如果你有 GNU grep

tail -f /mydir/myfile |  grep --line-buffered "searchterm" >> outfile
Run Code Online (Sandbox Code Playgroud)

这将写入每一行,以降低性能。

或者,等待更多输出。如果您要终止进程,只需终止进程,tail缓冲区应在grep退出前刷新。