首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux : grep从流到文件

Linux : grep从流到文件
EN

Stack Overflow用户
提问于 2016-08-11 11:44:33
回答 1查看 1.5K关注 0票数 0

我有一个不断更新的日志文件A(但它被滚动了),我需要不断地过滤它的内容并写入一个持久的文件。

TL;博士我需要:

代码语言:javascript
复制
tail -f A.log | grep "keyword" >> B.log

但此命令不向B.log写入任何内容。

研究只给了我一些复杂的东西--这不是我的情况。我猜我错过了一些简单的概念。

这与标记为possible duplicate的问题不同,因为grep工作,如果我不尝试将它写到文件中,那么它的输出就有了。问题是文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-11 12:02:37

如果只是grep,而没有写入该文件,则会遇到缓冲“问题”。I/O缓冲,除非由程序手动实现,否则将由libc处理。如果程序的stdout是固定的,则缓冲将以行为基础。否则,libc缓冲区将输出,直到缓冲区达到大小限制为止。

在Linux上,这意味着对于glibc,您可以使用stdbuf命令配置缓冲区:

代码语言:javascript
复制
tail -f A.log | stdbuf -oL grep "keyword" >> B.log

-oL指定输出流应该是行缓冲的.

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38895451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档