Я пытался использовать команду awk для извлечения содержимого из файла журнала за последние 5 минут. Ниже была команда, которую я использую
`awk -v d1="$(date --date="-5 min" "+%m/%d/%y %k:%M:%S:%3N")" -v d2="$(date "+%m/%d/%y %k:%M:%S:%3N")" '$0 > d1 && $0 < d2 || $0 ~ d2' /tmp/test.log
Обнаружено условие '$0 > d1 && $0 < d2 || $0 ~ d2'
работает только на определенных форматах даты. Формат даты в моем журнале приведен ниже:[2/9/17 13:30:35:552 EST] Команда, которую я запускал выше, не работала ..
Но когда я тестировал другой формат даты, как показано ниже:9 февраля 14:01
условие сработало.
awk -v d1="$(date --date="-30 min" "+%b %_d %H:%M")" -v d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2' /tmp/test2.log
Есть идеи, почему условие не работает в этом формате даты [9/9/17 13:30:35:552 EST]?