我有一个日志文件。每行前面都有一个日期,日期格式如下:
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
答案 0 :(得分:1)
如果按行按时间顺序排列,则可以使用sed
。
sed -e "1,/^$(date -d -23hour +'%Y-%m-%d %H')/d"
这将删除所有行,直到找到第一个匹配,即在第一个匹配后打印所有行直到文件结束。