У меня есть требование, где мне нужно извлечь из журналов, который охватывает период с 2011/03/25 по 2011/04/04 (ГГММДД).

Я сделал это с помощью команды egrep, кажется, работает нормально для меня.

cat /var /log /messages | egrep "2011/03/2 [6-9] | 2011/03/3 [0-1] | 2011/04/0 [1-4]"

Я искал команду awk, которая облегчила бы мою жизнь.

Ниже приведен фрагмент файла журнала ...

 2011/04/01-12:15:00
 2011/04/01-12:15:00
 2011/04/01-12:15:00
 2011/04/01-12:15:01
 2011/04/01-12:15:01
 2011/04/01-12:15:01
 2011/04/01-12:15:01
 2011/04/01-12:15:01

1 ответ1

1
awk -F - '"2011/03/25" < $1 && $1 <= "2011/04/04"' filename

или, если даты более динамичны

d1="2011/03/25" # or whatever commands to set this date
d2="2011/04/04" # or whatever commands to set this date
awk -v start=$d1 -v end=$d2 -F - 'start < $1 && $1 <= end' filename

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .