Добавьте возврат каретки к выходу `tail` при использовании` grep`

Я хочу реорганизовать следующую команду:

tail -f production.log | grep -e "Processing " -e "compatible;" -e "Completed in " -e 

Это результат команды:

Обработка BasketController # cross_sell_product (для 85.189.237.x в 2011-08-03 12:46:07) [POST] «RequestLog», «2011-08-03 12:46:07», «12595», «www. «com.com», «/ basket / cross_sell_product / 113», «85.189.237.x», «Mozilla / 5.0 (совместимо, MSIE 9.0, Windows NT 6.1, WOW64; Trident / 5.0)» Завершено в 0.07853 (12 запросов / сек) | Рендеринг: 0,01402 (17%) | DB: 0,01439 (18%) | 200 OK [https://www.website.com/basket/cross_sell_product/113]

Это здорово, и именно то, что я хочу, однако, я бы хотел увидеть, это возврат на картер или два после этого, чтобы я мог изучать журналы как блоки.

Я пытался добавить \n до конца, но это не сработало.

2 Solutions collect form web for “Добавьте возврат каретки к выходу `tail` при использовании` grep`”

Я не уверен, что вы хотите, но awk, возможно, сделает это легко. Чтобы добавить дополнительную строку новой строки после каждой соответствующей строки:

 tail -f production.log | awk '/Processing|compatible;|Completed in / {print; print ""}' 

Чтобы добавить новую строку между всеми блоками несвязанных совпадающих строк:

 tail -f production.log | awk ' /Processing|compatible;|Completed in / { if (NR == n+1) print ""; n = NR; print; }' 

grep будет отфильтровывать пустые строки, поскольку они не соответствуют ни одному шаблону. В случае, если в исходном файле появляются разделители пустой строки, вы можете их пропустить, добавив -e "^$" .

Если эти пустые строки не присутствуют в исходном файле, вам придется их добавлять. Это пример того, как это сделать:

  tail -f production.log | grep -e … | sed 's/\(^Processing \)/\n\1/' 

Edit: если вы хотите, чтобы пустая строка после каждой строки использовала sed 's/$/\n/' . И, конечно, вы можете добавить столько \n сколько хотите.

  • Как извлечь количество физических процессоров и потоков на ядро? (Нет текста, только номер для использования в качестве входных данных в другом месте)
  • Хвост нескольких файлов и вывод в качестве дополнительного столбца с результатами поиска
  • Отрицательные аргументы для головы / хвоста
  • Команда для удаления первого N числа строк на входе
  • Данные о трубах от подключения сокета TCP к терминалу
  • любой способ объединить grep и tail для создания таблицы таблицы из командной строки
  • grep не работает в цикле for по списку
  • Объединение tail && journalctl
  • Как активно grep log за последние 15 секунд для фразы?
  • Как я могу напечатать вторую в последнюю строку множество файлов в один файл?
  • Время, необходимое для вывода трубы на голову / хвост
  • Linux и Unix - лучшая ОС в мире.