
Я использую команду ниже для отображения данных журнала за последние 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"
P.S. Я использую AIX.
решение1
Я думаю, это потому, что на самом деле сравниваются строки, а не даты. Когда месяц меняется, сравнение нарушается.
Попробуйте отформатировать дату другим способом, возможно, используя формат эпохи или числовой формат даты.
date -d "Jul 31 11:55:00" +%s
выводит 1533063300. Аналогично,
date -d "Aug 1 00:05:00" +%s
выходы 1533107100.
А вот дальше сравнение должно быть простым.