使用 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。

從那裡應該很容易進行比較。

相關內容