Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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
Macos 在Mac OS-X中将tail-f与多个Grep命令一起使用时没有输出_Macos_Bash_Shell - Fatal编程技术网

Macos 在Mac OS-X中将tail-f与多个Grep命令一起使用时没有输出

Macos 在Mac OS-X中将tail-f与多个Grep命令一起使用时没有输出,macos,bash,shell,Macos,Bash,Shell,我正试图从Mac OS X终端执行以下命令: $tail -f FILE_PATH | grep "DESIRED_STRING" | grep -v "EXCLUDED_STRING" 不幸的是,我没有得到任何回报 但是,当使用cat而不是tail-f时: $cat FILE_PATH | grep "DESIRED_STRING" | grep -v "EXCLUDED_STRING" 我得到了预期的结果。不幸的是,这种解决方法对我没有好处,因为我需要实时跟踪文件。grep默认情况下缓冲

我正试图从Mac OS X终端执行以下命令:

$tail -f FILE_PATH | grep "DESIRED_STRING" | grep -v "EXCLUDED_STRING"
不幸的是,我没有得到任何回报

但是,当使用
cat
而不是
tail-f
时:

$cat FILE_PATH | grep "DESIRED_STRING" | grep -v "EXCLUDED_STRING"

我得到了预期的结果。不幸的是,这种解决方法对我没有好处,因为我需要实时跟踪文件。

grep
默认情况下缓冲其输出。由于
tail-f
永远不会完成,因此
grep
也不会完成,您必须等到最后一个已累积足够的输出以填充其缓冲区。使用
cat
,命令最终完成,允许
grep
s完成并打印它们累积的任何输出(无论其缓冲区是否已填充)


--line buffered
添加到
grep
命令会更改
grep
缓冲其输出的方式,允许您在每行完成时查看输出。

您是否尝试将
--line buffered
添加到
grep
s.tail-f post-mortem|u FILE|grep--line buffered“所需_字符串”中| grep--行缓冲-v“EXCLUDED_STRING”按预期工作!