Xml linux中sed解析日志文件

Xml linux中sed解析日志文件,xml,bash,unix,sed,cygwin,Xml,Bash,Unix,Sed,Cygwin,我试图使用sed解析日志文件,以便使用模板从中提取xml消息。我想在新文件中获取所有xml消息 我正在使用这个命令sed's/\(.*\)/\1/'input.out>output.xml input.out包含以下内容: WARNING: Exchange[ExchangePattern: InOut, BodyType: byte[], Body: <?xml version="1.0" encoding="utf-8" standalone="yes"?><sendin

我试图使用
sed
解析日志文件,以便使用模板从中提取xml消息。我想在新文件中获取所有xml消息

我正在使用这个命令
sed's/\(.*\)/\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>]
警告:Exchange[ExchangePattern:InOut,BodyType:byte[],Body:city]
2016年9月26日上午11:54:30 org.apache.camel.util.camelogger日志
警告:Exchange[ExchangePattern:InOut,BodyType:byte[],Body:]
我希望得到这样的结果:

 <query>        <describe>            <data>city</data>        </describe>    </query>    <query>        <key_info/>    </query>
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>]
城市
但是我只得到源文件,没有
元素,如下所示:

 <query>        <describe>            <data>city</data>        </describe>    </query>    <query>        <key_info/>    </query>
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>]
警告:Exchange[ExchangePattern:InOut,BodyType:byte[],Body:city]
2016年9月26日上午11:54:30 org.apache.camel.util.camelogger日志
警告:Exchange[ExchangePattern:InOut,BodyType:byte[],Body:]
对不起我的英语,祝你有一个愉快的一天。谢谢你的帮助

sed 's/.*<sending>\(.*\)<\/sending>.*/\1/' input.out>output.xml

它删除了没有发送组的行。不要忘记sed会占用可用的最长部分,因此,如果同一行(或更多行)上有两个bloc,则从第一次发送到最后一次/sending

try
grep-oP'\\K.*(=\)filename
NeronLeVelu,非常感谢,我可以解决这个问题