我正在使用下面的命令来显示最近 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。
从那里应该很容易进行比较。