我有一个日志文件。每行前面都有一个日期,日期格式如下:
2016-02-01 11:34:48,567.......
我该怎么办grep
该文件过去 24 小时内是否存在?
我在特定时间尝试了如下一些操作,但这种方法在过去 X 小时内不起作用:
grep "2016-02-01 15:0[1-9]:00 logfile
此外,以下内容在 -1 小时内有效,但在 -23 或 -24 小时内失败:
grep "^$(date -d -23hour +'%Y-%m-%d %H')" logfile
最佳答案
如果行按时间顺序排列,则可以使用 sed
。
sed -e "1,/^$(date -d -23hour +'%Y-%m-%d %H')/d"
这将删除所有行,直到找到第一个匹配项,即打印第一个匹配项之后的所有行,直到文件末尾。
关于linux - 过去 X 小时的 Grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35148434/