繁体   English   中英

用bash提取XML文件中的数据

[英]Extract data in XML file with bash

我需要帮助从文件中提取XML字符串,如下所示:

<line>
<Start_Time>2016-May-18 17.06.17.504</Start_Time>
<Domain>pciereg062</Domain>
<Injected_tags>
 before xml started ; AUTOMATIC-REPRODUCTION-stopped on barrier ;
</Injected_tags>
</line>

<line>
<Start_Time>2016-May-18 17.08.53.585</Start_Time>
<Domain>adv191</Domain>
<Injected_tags>port-num-0 ; port-num-0 actual-FW-14.16.0234 ;
</Injected_tags>
</line>

我想提取在障碍中停止的Injection_tags(它将总是出现在域之后)字符串中的域名。

是否有一个简单的bash实用程序可以做到这一点(grep,awk,sed)?

在上面的示例中,输出应为pciereg062而不是adv191

对于多字符RS,使用GNU awk:

$ awk -v RS='</[^>]+>' -F'[<>]' '{m[$2]=$3} $2=="Injected_tags" && /stopped on barrier/{print m["Domain"]}' file
pciereg062

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM