Я пытаюсь использовать sed
для анализа файла журнала, чтобы извлечь из него XML-сообщения с помощью шаблона. Я хочу получить все xml-сообщения в новом файле.Анализ файла журнала с sed в linux
Я использую эту команду sed 's/<sending>\(.*\)<\/sending>/\1/' input.out>output.xml
input.out имеют следующие:
КонтентWARNING: Exchange[ExchangePattern: InOut, BodyType: byte[], Body: <?xml version="1.0" encoding="utf-8" standalone="yes"?><sending><query> <describe> <data>city</data> </describe> </query></sending>]
Sep 26, 2016 11:54:30 AM org.apache.camel.util.CamelLogger log
WARNING: Exchange[ExchangePattern: InOut, BodyType: byte[], Body: <?xml version="1.0" encoding="utf-8" standalone="yes"?><sending> <query> <key_info/> </query></sending>]
Я ожидаю, чтобы получить результат, как это:
<query> <describe> <data>city</data> </describe> </query> <query> <key_info/> </query>
Но я только получаю исходный файл без <sending>
и </sending>
таких элементов:
WARNING: Exchange[ExchangePattern: InOut, BodyType: byte[], Body: <?xml version="1.0" encoding="utf-8" standalone="yes"?><query> <describe> <data>city</data> </describe> </query>]
Sep 26, 2016 11:54:30 AM org.apache.camel.util.CamelLogger log
WARNING: Exchange[ExchangePattern: InOut, BodyType: byte[], Body: <?xml version="1.0" encoding="utf-8" standalone="yes"?> <query> <key_info/> </query>]
Извините за мой английский и приятный день. Спасибо за помощь.
попробуйте 'grep -oP '\ \ K. * (? = \ <\/sending\>) 'filename' –