使用 awk 显示最近 10 分钟日志时出错

使用 awk 显示最近 10 分钟日志时出错

我正在使用下面的命令来显示最近 10 分钟的日志数据。如果月份保持不变,则效果很好,但是当月份更改时,它不会显示任何数据。

awk -v d1="$D1" -v d2="$D2" '$0 > d1 && $0 < d2 || $0 ~ d2' /home/user.log

工作正常,如果,

D1="Aug  1 12:00:00"
D2="Aug  1 12:10:00"

但不显示任何数据,如果,

D1="Jul 31 11:55:00"
D2="Aug  1 00:05:00"

PS我使用的是AIX

答案1

我相信这是因为它实际上是在比较字符串,而不是日期。当月份发生变化时,比较就会中断。

尝试以其他方式格式化日期,可能使用纪元或数字日期格式。

date -d "Jul 31 11:55:00" +%s

输出 1533063300。同样,

date -d "Aug  1 00:05:00" +%s

输出 1533107100。

从那里应该很容易进行比较。

相关内容