拥有日志文件,例如:
[DEBUG][2016-06-24 11:10:10,064][DataSourceImpl] - [line A...]
[DEBUG][2016-06-24 11:10:10,069][DataSourceImpl] - [line B...]
[DEBUG][2016-06-24 11:10:12,112][DataSourceImpl] - [line C...]
在tail -f
实时监控下,是否可以自动插入(通过命令我们将管道到tail
)“空行”之后,比方说,2秒不活动?
预期结果:
[DEBUG][2016-06-24 11:10:10,064][DataSourceImpl] - [line A...]
[DEBUG][2016-06-24 11:10:10,069][DataSourceImpl] - [line B...]
---
[DEBUG][2016-06-24 11:10:12,112][DataSourceImpl] - [line C...]
(因为两条连续线之间的间隙超过2秒)。
答案 0 :(得分:3)
awk -F'[][\\- ,:]+' '1'
上述内容将拆分]
,[
,-
,,
,和
:
上的字段,以便每个字段都是如下所述:
[DEBUG][2016-06-24 11:10:10,064][DataSourceImpl] - [line A...]
22222 3333 44 55 66 77 88 999 ...
然后,您可以连接一些字段并使用它来衡量时差:
tail -f input.log | awk -F'[][\\- ,:]+' '{ curr=$3$4$5$6$7$8$9 }
prev + 2000 < curr { print "" } # Print empty line if two seconds
# have passed since last record.
{ prev=curr } 1'
答案 1 :(得分:0)
tail
没有此功能。如果你想要,你可以实现一个程序或脚本来检查文件的最后一行;类似(伪代码)
previous_last_line = last line of your file
while(sleep 2 seconds)
{
if (last_line == previous_last_line)
print newline
else
print lines since previous_last_line
}
两个评论: