Что добавляет суффикс даты (access.log.20210909.gz )не по умолчанию для logrotate, вместо того, чтобы каждый раз менять имена файлов (.1,.2.gz,.3.gz )?

Эта задача слишком сложна для grep, но можно использовать sed, например:

sed '/Trn-status:/h;/\\"message\\":\\"TECHNICAL EXCEPTION\\"/!d;G;/Trn-status: INCOMPLETE/!d;s/.*"errorCode\\":\\"//;s/\\".*//' yourfile
  • /Trn-status:/hчтобы всегда сохранять последнюю Trn-statusстроку в ячейке хранения
  • /\\"message\\":\\"TECHNICAL EXCEPTION\\"/!dозначает dудаление всех строк без(!)заданного шаблона. Обратите внимание, что обратную косую черту необходимо экранировать другой обратной косой чертой
  • .
  • Остальное для скрипта обрабатывается только для TECHNICAL EXCEPTIONсообщений, но теперь нам нужно убедиться, что Trn-statusравно INCOMPLETE, поэтому мы добавляем пробел с Gи delete, если мы не не найтиTrn-status: INCOMPLETE
  • Теперь просто удалите часть перед(s/.*"errorCode\\":\\"//)и после(s/\\".*//)кода, который вы ищете.
0
09.09.2021, 08:43
0 ответов

Теги

Похожие вопросы