Страница 1 из 1

Лог в диапазоне часов

Добавлено: 2011-07-29 13:23:32
mmvds
Такая задача - вывести часть лога за вчерашний день с 17-00 до 24-00

Код: Выделить всё

grep -i "`date -v-1d +%b" "%d" "`[17-23]:" logfile.log
на что баш ругается
grep: Invalid range end
ему не нравится диапазон значений, пробую так:

Код: Выделить всё

grep -i "`date -v-1d +%b" "%d" "`[17,18,19,20,21,22,23]:" logfile.log
срабатывает, но список пустой
Подскажите пожалуйста, как задать диапазон правильно?

Re: Лог в диапазоне часов

Добавлено: 2011-07-29 22:17:05
kpp
Первое что приходит в голову:

Код: Выделить всё

 grep -iE "^`date -v-1d +%b" "%d` (17|18|19|20|21|22|23):" logfile.log

Re: Лог в диапазоне часов

Добавлено: 2011-07-29 22:47:54
mmvds
Спасибо! Думал что есть более короткий вариант, но самое главное что этот работает)

Re: Лог в диапазоне часов

Добавлено: 2011-07-29 23:04:42
kpp
Можно немного укоротить:

Код: Выделить всё

grep -iE "^`date -v-1d +%b" "%d" "` (1[7-9]|2[0-3]):" logfile.log

Re: Лог в диапазоне часов

Добавлено: 2011-08-02 7:58:39
mmvds
Спасибо! Действительно не подумал, ведь grep работает с диапазонами символов а не чисел