2016-01-19 4 views
2

Как использовать команду grep для извлечения журналов на основе часов? Я хочу получить журналы с 20:00 до 23:00.Журналирование журналов Unix Logger с использованием grep

[1/10/16 23:55:33:018 PST] 00000057 ServerObj E SECJ0373E: Exception message 
      at        com.own.ws.wim.util.UniqueNameHelper.formatUniqueName(UniqueNameHelper.java:102) 
      at com.own.ws.wim.ProfileManager.getImpl(ProfileManager.java:1569) 

Пожалуйста, помогите мне, я новичок в unix.

Спасибо.

ответ

1

Это позволит получить журналы на день проявляемый с 20:00 до 22:59

grep '^\[1/10/16 2[012]:' 

Как это работает

  • ^ якорь начала строки совпадает с тем только в начале строки
  • \[ буквально соответствуют квадратной скобки. Без \ квадратной скобки особенный в регулярном выражении
  • [012] матча цифра 0 или 1 или 2
+0

Сво работает нормально. Мне было интересно, может ли он получить 1/10/16 17:00 - 1/11/16 5:30. –

+0

Он может выбрать диапазон, который вы предлагаете, но это будет длинное регулярное выражение с переменным '' '' 'оператором. Вероятно, легче выбрать по дням для временного файла, а затем повторить grep, чтобы получить требуемый временной интервал. Я бы не использовал grep для этой задачи, я бы использовал скриптовый язык, такой как perl или python – Vorsprung

0

Это должно работать:

$ egrep '^\[[0-9/]+ 2[0-2]:' log_file 
Смежные вопросы