LINUX.ORG.RU
ФорумAdmin

Вывод логов

 , ,


0

1

Добрый день. Прошу прощения если пишу не в ту ветку и т.п. Собственно сам вопрос. Есть большой серверный лог. Некоторые строки начинаются с даты и времени, некоторые - нет. 1.Мне нужно вывести (скопировать в другой файл) кусок лога в определенный промежуток времени, но с условием, что будут захватываться все строки, включая те, что без даты. Просмотр целого лога - задача нереальная. tail тоже не подходит (большой объем). Выводил грепом grep «12-03-2017 12:[0-59]» test.log > baza.log например. Но тут игнорятся строки без времени. 2. Необходимо вывести кусок лога с определенного времени (с 7 утра например) и до конца (до настоящего момента). Я совсем новичек, просьба ногами не пинать.

если заранее известно число следующих за датной строкой бездатных строк то у греп есть -C так что получиш свои датные и их окрестности ( возможно с дублями)

Вообще тебе пригодится фильтр с состояниями а это php perl awk sed ed bash

anonymous
()

grep -P ...

anonymous
()
# cat A_cup_of_tea.log
12-03-2017 12:00 rec 1
rec 1 addentum 1
rec 1 addentum 2
rec 1 addentum 3
rec 1 addentum 4
13-03-2017 12:00 rec 2
rec 2 addentum 1
rec 2 addentum 2
rec 2 addentum 3
14-03-2017 12:00 rec 3
15-03-2017 12:00 rec 4
# grep -A 999999 "13-03-2017 12:[0-59]" < A_cup_of_tea.log | grep -B 999999 "14-03-2017 12:[0-59]"
13-03-2017 12:00 rec 2
rec 2 addentum 1
rec 2 addentum 2
rec 2 addentum 3
14-03-2017 12:00 rec 3

PS формат даты в вашем логе - мудацкий.

legolegs ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.