@protsey

Как найти в файле строку по временному интервалу в ней?

Добрый день. Есть файл с парой десятков тысяч строк. Из них нужными являются строк триста. Идентификатором строки является дата и время в формате DATE: 01/19/18 TIME: 17:56:15. Известно время, когда записалась важная для меня строка, но это время отличается от записаного в файл на несколько секунд в плюс или минус. Собственно вопрос, как примерно сформировать запрос, чтобы насти строку по интервалу времени DATE: 01/19/18 TIME: 17:56:15±10с? Можно ли обойтись без циклов и скрипта? Заранее спасибо.
  • Вопрос задан
  • 245 просмотров
Пригласить эксперта
Ответы на вопрос 3
AlexMcArrow
@AlexMcArrow
Люблю РНР, да я такой!
Попробуйте это:
cat test.log | grep -oP '^(DATE: 01\/19\/18 TIME:\s17:56:.*)$'

вы получите строки поподающие по данный фильтр - в данном примере все логи за минуту DATE: 01/19/18 TIME: 17:56:**
Ответ написан
Комментировать
shambler81
@shambler81 Куратор тега Linux
cat test.log | grep -oP '^(DATE: 01\/19\/18 TIME:\s17:56:(5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25))$'

для легкости отладки можно разбить на два этапа
cat test.log | grep -oP '^(DATE: 01\/19\/18 TIME:\s17:56:.*)$' | grep -...
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Не совсем понятно условие.
Идентификатор - строка содержащая дату/время или вам нужна конкретная дата?
Время, когда строка была записана в файл вообще нигде не хранится, есть только сама строка - если она содержит время, то и все.

Найти по интервалу будет сложнее, но вы же можете искать с точностью до минут, или даже до десятков минут.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы