Как извлечь строку (дату) из файла журнала - PullRequest
1 голос
/ 13 февраля 2020

у меня есть журнал, который не обычно

Jan  5 11:34:00 log messages here
Jan 13 16:21:00 log messages here

я пытаюсь

grep -oE '[0-9]{2}:[0-9]{2}:[0-9]{2}'

результат, если я объединяюсь с tail -n 1 , равен

16:21:00

ожидаемый результат

Jan 13 16:21:00

как мне этого добиться? я запутался в регулярных выражениях .. или есть другой лучший подход?

промежуточная часть - мой журнал, в котором добавлено место, а не ноль в дате

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Не могли бы вы попробовать следующее, это будет соответствовать точной строке только до времени.

grep -ioP "(^[a-zA-Z]+\D*\d+\D*(\d+:){2}\d+)"  Input_file
0 голосов
/ 13 февраля 2020

Для этого примера я мог бы сделать это: .*[0-9]{2}:[0-9]{2}:[0-9]{2}. Просто сопоставьте что-либо до того времени, как это понадобилось.

Или уточните, предположив, что месяц всегда состоит из 3 символов: ^[A-Z][a-z]{2}\s+\d{1,2}\s+[0-9]{2}:[0-9]{2}:[0-9]{2}.

...