linux - 过去 X 小时的 Grep

标签 linux bash shell logging grep

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

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/

相关文章:

Windows 脚本 (VBS) 始终使应用程序保持打开状态

Bash Shell 脚本 : Nested Select Statements

linux - 对文本文件中的每个 id 运行命令

Linux命令将所有文件从var/A移动到var/

linux - shell 参数不随命令传递

linux - bash Linux - 大量文件夹重命名

shell - Powershell:如何在无休止的脚本行之后继续运行脚本?

bash - 为列的每个唯一值输出整行一次(Bash)

linux - 我想在 Linux 上通过 USB 硬盘安装外部磁盘,但我不明白

linux - 更改 Linux 命令