Как извлечь данные из одной строки в другую и сохранить на выходе

Хотите получить определенный час для другого и сохранить вывод. Первый час - моя отправная точка, например:

Nov 20 13:42:52 host sendmail[14819]: qAKCgpxF014819: Milter: read returned -1: Connection reset by mail.yahoo.com

И мой финиш:

Nov 20 16:22:23 host sendmail[16326]: qAKCgpxF016326: Milter: read returned -1: Connection reset by mail.yahoo.com

Мне нужно сохранить все данные от моей начальной точки до моей конечной точки только в файл.

2 ответа

Решение

Если записи отсортированы по времени, вы можете просто

sed -n '/^Nov 20 13:42:52/,/^Nov 20 16:22:23/p' input.log > output.log

Осторожно, если есть еще записи с временем окончания, будет напечатана только первая. Вы можете улучшить это,

sed -n '/start/,/end/{p;d};/end/p'

Это работает для вас? (не тестировал)

awk -F' |:'  'BEGIN{m="Nov";d=20;sh=13;eh=16}$1==m && $2==d && $3>=sh && $3<=eh' file
Другие вопросы по тегам