如何从管道linux命令连续发送输出到文件?

use*_*246 1 linux bash grep output-buffering

下面的命令每秒生成输出60秒.

sar -n DEV  1 60 | grep lo
Run Code Online (Sandbox Code Playgroud)

如果我将其重定向到文件,则文件sar.log会连续更新,即每秒更新一次

sar -n DEV  1 60 > sar.log &
Run Code Online (Sandbox Code Playgroud)

但是,只要管道然后将其重定向到文件,它就会在文件sar.log完成后填充,即60秒后填充文件.

sar -n DEV 1 60 | grep lo > sar.log &
Run Code Online (Sandbox Code Playgroud)

如何grep和重定向到文件,以便日志文件连续更新,即每秒

我可以使用除grep之外的其他东西,如果它有助于我选择某些内容并每秒重定向到一个文件.

Cyr*_*rus 5

使用GNU grep:Add选项--line-buffered在输出上使用行缓冲.这可能会导致性能下降.