如何从管道传输的Linux命令连续将输出发送到文件?

3
以下命令每秒生成一次输出,持续 60 秒。
sar -n DEV  1 60 | grep lo

如果将其重定向到一个文件,则sar.log 文件会持续更新,每秒钟更新一次。

sar -n DEV  1 60 > sar.log &

然而,一旦将其管道化并将其重定向到文件中,它仅在完成后即60秒后才会填充sar.log文件。

sar -n DEV 1 60 | grep lo > sar.log &

如何使用grep并重定向到文件,以便日志文件持续更新,即每秒钟更新一次?

如果可以选中某些内容并每秒钟将其重定向到文件,则我也可以使用除grep之外的其他工具。

2个回答

6

使用GNU grep:添加选项--line-buffered以在输出上使用行缓冲。这可能会导致性能损失。


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接