Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从管道linux命令连续向文件发送输出?_Linux_Bash_Grep_Output Buffering - Fatal编程技术网

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

如何从管道linux命令连续向文件发送输出?,linux,bash,grep,output-buffering,Linux,Bash,Grep,Output Buffering,以下命令每秒生成一次输出,持续60秒 sar -n DEV 1 60 | grep lo sar -n DEV 1 60 | grep lo > sar.log & 如果我将其重定向到一个文件,则文件sar.log会持续更新,即每秒更新一次 sar -n DEV 1 60 > sar.log & 但是,一旦对其进行管道传输,然后将其重定向到文件,它将仅在完成后(即60秒后)填充文件sar.log sar -n DEV 1 60 | grep lo sar

以下命令每秒生成一次输出,持续60秒

sar -n DEV  1 60 | grep lo
sar -n DEV 1 60 | grep lo > sar.log &
如果我将其重定向到一个文件,则文件sar.log会持续更新,即每秒更新一次

sar -n DEV  1 60 > sar.log &
但是,一旦对其进行管道传输,然后将其重定向到文件,它将仅在完成后(即60秒后)填充文件sar.log

sar -n DEV  1 60 | grep lo
sar -n DEV 1 60 | grep lo > sar.log &
我如何grep并重定向到一个文件,以使日志文件持续更新,即每秒更新一次

sar -n DEV  1 60 > sar.log &

我可以使用grep以外的东西,如果它符合我每秒选择某个东西并重定向到某个文件的目的。

使用GNU grep:Add option
--line buffered
在输出时使用line buffering。这可能会导致性能下降。

我发现这也是一个很好的答案

sar -n DEV 1 10 | stdbuf -o0 grep lo > sar.log &