是否可以在连续流上使用 grep
?
我的意思是一种 tail -f <file>
命令,但在输出中使用 grep
以便只保留我感兴趣的行。
我试过 tail -f <file> | grep pattern
但是似乎 grep
只能执行一次 tail
完成,也就是说永远不会。
原文由 Matthieu Napoli 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否可以在连续流上使用 grep
?
我的意思是一种 tail -f <file>
命令,但在输出中使用 grep
以便只保留我感兴趣的行。
我试过 tail -f <file> | grep pattern
但是似乎 grep
只能执行一次 tail
完成,也就是说永远不会。
原文由 Matthieu Napoli 发布,翻译遵循 CC BY-SA 4.0 许可协议
我一直使用 tail -f <file> | grep <pattern>
。
它会等到 grep 刷新,而不是完成(我使用的是 Ubuntu)。
原文由 Irit Katriel 发布,翻译遵循 CC BY-SA 3.0 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答784 阅读✓ 已解决
2 回答3.2k 阅读
使用 BSD grep 时打开
grep
的行缓冲模式(FreeBSD、Mac OS X 等)似乎不久前
--line-buffered
对于 GNU grep(几乎在任何 Linux 上使用)并不重要,因为它默认刷新(YMMV 用于其他类 Unix,如 SmartOS、AIX 或 QNX)。但是,截至 2020 年 11 月,需要--line-buffered
(至少在 openSUSE 中使用 GNU grep 3.5,但根据以下评论似乎通常需要)。