
我正在使用下面的命令來顯示最近 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。
從那裡應該很容易進行比較。