如何删除文件中xml之外的所有内容

时间:2019-05-10 09:26:50

标签: regex awk sed

我搜索一个仅在文件中保留xml的命令,但是我不知道该怎么做。

我已经搜索了正则表达式,我已经找到该正则表达式来查找我的内容。 (<msg>[\s\S]*?<\/msg>)

但是我没有说如何在sed中集成以便在我的程序中创建此命令:sed regex> myfile。 或者最好直接删除与我的正则表达式不匹配的每一行。

我的文件:

MIME-Version: 1.0
Content-Type: Multipart/Related;boundary=MIME_boundary;

--MIME_boundary
Content-Type: application/xop+xml;

<msg><tag date="1557417027960" session="1697"><decision object="B04DWHEF" reliability="95" context="RO" x="796" y="371" width="89" height="18" direction="front"><jpeg></jpeg></decision></tag></msg>

Content-Type: application/octet-stream;
Content-Transfer-Encoding: binary;
Content-ID: A;
Content-Length: 30217;

����Lavc57.89.100��C...

我只想要这个结果:

<msg><tag date="1557417027960" session="1697"><decision object="B04DWHEF" reliability="95" context="RO" x="796" y="371" width="89" height="18" direction="front"><jpeg></jpeg></decision></tag></msg>

1 个答案:

答案 0 :(得分:0)

感谢Shubham提供正则表达式,我只在同一行中查找没有其他内容的xml的解决方案是:

grep -o "<.*>.*</.*>" file_name