Erro ao exibir o log dos últimos 10 minutos com awk

Erro ao exibir o log dos últimos 10 minutos com awk

Estou usando o comando abaixo para exibir dados de log dos últimos 10 minutos. Funciona bem se o mês permanecer o mesmo, mas quando o mês é alterado, não mostra nenhum dado.

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

Funciona bem se,

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

Mas não mostra nenhum dado se,

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

PS: estou usando AIX

Responder1

Acredito que seja porque se trata realmente de comparar as strings, não as datas. Quando o mês muda quebra a comparação.

Tente formatar a data de outra maneira, talvez usando o formato de data numérico ou de época.

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

gera 1533063300. Da mesma forma,

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

gera 1533107100.

Deve ser uma comparação fácil a partir daí.

informação relacionada