如何'grep'连续的流?
可以在连续流上使用grep
吗?
我的意思是排序一个tail -f <file>
命令,但是在输出中使用grep
来保留只有我感兴趣的行。
我试过tail -f <file> | grep pattern
tail -f <file> | grep pattern
但似乎grep
只能在tail
完成时执行,也就是说永远不会执行。
使用BSD grep(FreeBSD,Mac OS X等)时,打开grep
的行缓冲模式。
tail -f file | grep --line-buffered my_pattern
您不需要为GNU grep(几乎在任何Linux上使用)执行此操作,因为默认情况下它会刷新(YMMV用于其他类Unix,如SmartOS,AIX或QNX)。
我使用tail -f <file> | grep <pattern>
tail -f <file> | grep <pattern>
。
它会等到grep刷新,直到完成(我使用的是Ubuntu)。
我认为你的问题是grep使用了一些输出缓冲。 尝试
tail -f file | stdbuf -o0 grep my_pattern
它会将grep的输出缓冲模式设置为无缓冲。
链接地址: http://www.djcxy.com/p/74311.html