Я бы использовал что-то похожее на:
sed -n '/^-----.*(123\.123\.123\.123) ---/,/^------/p' file.log
Сначала он соответствует строке, начинающейся с 5 дефисов, затем содержит несколько произвольных символов, затем IP-адрес, заключенный в скобки, за которым следуют некоторые дефисы. Затем он соответствует всем строкам, пока не встретит строку, которая начинается с 5 дефисов. Вы можете использовать /^-\{5,\}$/
, чтобы указать строку, содержащую только дефисы (не менее 5).
По поводу редактирования вашего вопроса: с потоковой передачей я предполагаю, что вы имеете в виду tail -f
? Просто отправьте вывод в sed:
tail -f file.log | sed -n '/^-----.*(123\.123\.123\.123) ---/,/^------/p'