linux - 在 Linux 中获取自定义记录器的日期差异

标签 linux awk grep

我正在尝试使用 awk 在日志文件中查找最近 5 分钟内出现的字符串。 我正在尝试的命令是

awk -v d1="$(date --date="-5 min" "+%b %_d %H:%M")" -v d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2' /tmp/CustomService.log | grep -ci "IAM-548792" 

但这并没有返回输出。

日志文件中的内容如下所示

2016-11-07 16:08:05 DEBUG Service - Request: Started
2016-11-07 16:08:05 DEBUG Service - ##########
2016-11-07 16:08:05 DEBUG Service - Response: Completed at Mon 2016.11.07 at 04:08:05 PM EST
2016-11-07 16:08:05 DEBUG Service - IAM-548792. Internal Error

我认为问题是我的日志与 linux 使用的默认日期命令相比具有不同的时间戳。这是导致问题的原因吗?

我正在开始使用 awk 命令。感谢您的帮助。

最佳答案

你必须改变你的日期格式

这就是你拥有的

[user@user ~]$ date "+%b %_d %H:%M"
Nov  7 16:30

这就是你想要的

[user@user ~]$ date "+%F %H:%M:%S"
2016-11-07 16:32:05

关于linux - 在 Linux 中获取自定义记录器的日期差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40474915/

相关文章:

linux - 如何按顺序打印包含某些字符串的行?

xml - 如何使用 grep 在 xml 标记中查找信息?

windows - 如何 awk -f 最后一个之后的所有内容\

linux - 如何使用 Homebrew 软件在 Ubuntu 20.04 中正确安装 azure-cli?

linux - 使用别名到多个主机的 perl ssh 脚本

node.js - NodeJS - 错误 : connect ECONNREFUSED 127. 0.0.1:port (chrome-remote-interface)

linux - Netlink 套接字和 libnl - nl_recvmsgs_default 返回 -16 (EBUSY)

linux - 如何分割多个分隔符但将它们保留在方括号之间?

bash - 除非在双引号中,否则用单个制表符替换空格

bash - 使用 sed 或 grep 拆分 url