【发布时间】:2014-02-07 00:44:58
【问题描述】:
我正在尝试制作一个可以实时观看一些日志的脚本。我有一个请求日志,每个请求的格式如下,
---
id=273482
Result=Error
---
id=342345
Result=Success
---
还有第二个日志,其中每一行都有请求的 id。我需要实时观看请求日志并将其与第二个日志交叉引用。
tail -f requestLog | awk \"BEGIN { RS = \"---\" } /Error/\" | grep --line-buffered id | sed -u ...
我 tail -f 请求日志,使用 awk 拆分“---”上的记录,然后 grep 出 id 行。然后,我将所有这些传递给 sed -u 以提取 id 和 xargs 以 grep 第二个日志中与错误请求相关的行。
问题是结果出来真的延迟,因为某些东西(我认为 awk)缓冲错误。如何让 awk 不间断地读取输入并在每次看到错误记录时刷新输出?顺便说一句,我正在使用 GNU awk。
【问题讨论】: