Bash:在带有时间戳的文件中,仅在特定时间后显示行

Bash:在带有时间戳的文件中,仅在特定时间后显示行,bash,Bash,我正在运行一个后台脚本,每5分钟读取一个日志文件,格式如下 21:25:57 [INFO] event from 5 minutes ago 21:26:54 [INFO] potentially relevant event 21:28:26 [INFO] some event 21:30:06 [INFO] another event 除了我只想看一看过去5分钟内打印的行。基本上,我需要找到date-s“$logdate”+%s的行,如果您有GNU日期: $ date +%T 04:56:

我正在运行一个后台脚本,每5分钟读取一个日志文件,格式如下

21:25:57 [INFO] event from 5 minutes ago
21:26:54 [INFO] potentially relevant event
21:28:26 [INFO] some event
21:30:06 [INFO] another event
除了我只想看一看过去5分钟内打印的行。基本上,我需要找到
date-s“$logdate”+%s的行,如果您有GNU日期:

$ date +%T
04:56:32
$ date -d "5 min ago" +%T
04:51:45
你可以做到:

tac logfile | awk -v start=$(date -d "5 min ago" +%T) '$1 < start {exit} 1' | tac
tac日志文件| awk-v start=$(日期-d“5分钟前”+%T)$1
你的问题是什么?你需要帮助做什么?你的
tac
想法很有希望。哇,效果很好!我可能应该熟悉一下
awk
更多,它在这里工作得很好。