Error al mostrar el registro de los últimos 10 minutos con awk

Error al mostrar el registro de los últimos 10 minutos con awk

Estoy usando el siguiente comando para mostrar los datos de registro de los últimos 10 minutos. Funciona bien si el mes permanece igual; sin embargo, cuando se cambia el mes, no muestra ningún dato.

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

Funciona bien si,

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

Pero no muestra ningún dato si,

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

PD: estoy usando AIX

Respuesta1

Creo que eso se debe a que en realidad se comparan las cadenas, no las fechas. Cuando cambia el mes se rompe la comparación.

Intente formatear la fecha de otra manera, tal vez usando el formato de fecha numérica o de época.

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

salidas 1533063300. De manera similar,

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

salidas 1533107100.

Debería ser una comparación fácil a partir de ahí.

información relacionada