Grep持续X小时

时间:2016-02-02 08:32:22

标签: linux bash shell logging grep

我有一个日志文件。每行前面都有一个日期,日期格式如下:

2016-02-01 11:34:48,567.......

我如何在过去24小时内grep此文件?

我在特定的时间内尝试了一些如下所示的东西,但这种方法在最后X小时内不起作用:

grep "2016-02-01 15:0[1-9]:00 logfile

此外,以下内容适用于-1小时但失败为-23或-24小时:

 grep "^$(date -d -23hour +'%Y-%m-%d %H')" logfile

1 个答案:

答案 0 :(得分:1)

如果按行按时间顺序排列,则可以使用sed

sed -e "1,/^$(date -d -23hour +'%Y-%m-%d %H')/d"

这将删除所有行,直到找到第一个匹配,即在第一个匹配后打印所有行直到文件结束。