linux - 如何 'grep'连续流?

标签 linux bash shell grep tail

可以使用grep吗?在连续流上?

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

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

最佳答案

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

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,但根据下面的评论似乎通常需要)。

关于linux - 如何 'grep'连续流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7161821/

相关文章:

linux - 如何更改某些文件模式/扩展名的权限?

JavaFX .jar 适用于 Windows 和 OSX,但不适用于 Linux

linux - 我如何通过文本文件编写 hunpos 脚本?

linux - 如何从终端终止正在运行的 bash 函数?

linux - 在创建 tar 文件时,整个路径被创建为 tar 文件

linux - bash变量间接不能回显包含函数参数的变量吗?

android - 在 Ubuntu 上设置 Android 主目录。这是多余的吗?

linux - MP4Box:Concat 在 OSX 上工作,但在 Linux(Ubuntu)上不工作

linux - 高级计划进程/任务管理器 - Linux

bash - 如何将当前工作目录设置为 Bash 中脚本的目录?