1

У меня есть файл журнала в этом формате:

2016-01-21 01:56:48,586 [http-nio-8320-exec-54] INFO  config.web.login  - Successful login. Username: XYZ, xxxxx

Как мне выполнить grep этот файл и получить только строки, где время находится между 1:50:00 и 1:56:00 и где строка config.web.login - Successful login. Username: XYZ присутствует? Я пытаюсь подсчитать количество успешных входов в систему для определенного имени пользователя.

2 ответа2

0

Я предполагаю, что вас интересует период времени с 01:50:00 до 01:56:00 только на дату 2016-01-21, которая показана в вашем примере.

Вот решение, использующее только grep:

$ egrep '^2016-01-21 01:(5[06]:00|5[1-5]:[0-5][0-9]).*[[:blank:]]config.web.login  - Successful login. Username: XYZ,'
0

Вы можете сделать это с помощью awk и grep.

Попробуйте этот код:

awk '/01:50:48/, /01:56:48/' <<FILENAME>> | grep 'Successful login. Username: XYZ,\s\+xxxxx'

Где / 01:50:00 / время начала и / 01:56:00 / время остановки. Замените << FILENAME >> на путь к вашему файлу журнала.

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