У меня есть файл журнала, сохраненный с определенной датой. Я хочу получить записи журнала в определенный период времени и даты в другой файл.
Пример: все записи с 2014-12-04 00:00:00 до 2014-12-04 17:00:00
У меня есть файл журнала, сохраненный с определенной датой. Я хочу получить записи журнала в определенный период времени и даты в другой файл.
Пример: все записи с 2014-12-04 00:00:00 до 2014-12-04 17:00:00
Попробуйте 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.
Если вы хотите 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
Надеется, что это помогает,
Вы можете выбрать начальную и конечную строки, например, с помощью 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
запрещает действие по умолчанию при печати каждой строки.