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

吉尔·希德马蒂(Gil Shdemati)

我正在尝试从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,该命令最终完成,从而允许greps和s都完成并打印它们所累积的任何输出(无论是否已填充其缓冲区)。

添加--line-bufferedgrep命令将更改grep缓冲其输出的方式,使您可以在每行完成时查看输出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章