1

У меня есть файл журнала, сохраненный с определенной датой. Я хочу получить записи журнала в определенный период времени и даты в другой файл.

Пример: все записи с 2014-12-04 00:00:00 до 2014-12-04 17:00:00

3 ответа3

2

Попробуйте egrep:

pttrn="2014-12-04 0[0-9]"
pttrn="${pttrn}|2014-12-04 1[0-6]"
pttrn="${pttrn}|2014-12-04 17:00:00"

egrep "${pttrn}" <logfile>

Шаблон egrep состоит из трех частей. Первая часть захватывает все с 00:00:00 до 09:59:59. Вторая часть захватывает все с 10:00:00 до 16:59:59, а третья часть захватывает 17:00:00.

0

Если вы хотите 4-минутный интервал журналов,

grep "01/APR/2014:16:3[5-9]" logfile

вернет все строки журнала между 16:35 и 16:39 01 апреля 2014 года.

Предположим, что вам нужны последние 5 дней, начиная с 17 сентября 2014 года, вы можете использовать следующее:

grep "1[3-7]/Sep/2011" logfile

Надеется, что это помогает,

0

Вы можете выбрать начальную и конечную строки, например, с помощью sed:

sed -n '/Dec  5 11:00/,/Dec  5 12:00/p' /var/log/daemon.log

Это напечатает все строки от первой строки с Dec 5 11:00 до (и включая) первую строку с Dec 5 12:00 . Это предполагает, что журнал является последовательным по времени (т.е. все строки расположены в порядке времени). Параметр -n запрещает действие по умолчанию при печати каждой строки.

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