如何“grep”一个连续的流?

新手上路,请多包涵

是否可以在连续流上使用 grep

我的意思是一种 tail -f <file> 命令,但在输出中使用 grep 以便只保留我感兴趣的行。

我试过 tail -f <file> | grep pattern 但是似乎 grep 只能执行一次 tail 完成,也就是说永远不会。

原文由 Matthieu Napoli 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 513
2 个回答

使用 BSD grep 时打开 grep 的行缓冲模式(FreeBSD、Mac OS X 等)

 tail -f file | grep --line-buffered my_pattern

似乎不久前 --line-buffered 对于 GNU grep(几乎在任何 Linux 上使用)并不重要,因为它默认刷新(YMMV 用于其他类 Unix,如 SmartOS、AIX 或 QNX)。但是,截至 2020 年 11 月,需要 --line-buffered (至少在 openSUSE 中使用 GNU grep 3.5,但根据以下评论似乎通常需要)。

原文由 tad 发布,翻译遵循 CC BY-SA 4.0 许可协议

我一直使用 tail -f <file> | grep <pattern>

它会等到 grep 刷新,而不是完成(我使用的是 Ubuntu)。

原文由 Irit Katriel 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题