Команда Unix для grep диапазон времени

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

Ex: все записи из
2014-12-04 00:00:00 время 2014-12-04 17:00:00

13
задан uSlackr
09.12.2022 6:23 Количество просмотров материала 2521
Распечатать страницу

3 ответа

попробуйте 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.

2
отвечен Daniel Goldfarb 2022-12-10 14:11

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

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

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

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

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

надеется, что это поможет,

0
отвечен vembutech 2022-12-10 16:28

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

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

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

0
отвечен wurtel 2022-12-10 18:45

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх