使用 bash 提取 XML 文件中的数据



我需要帮助从文件中提取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>

我想提取injected_tags(将始终在域之后)字符串在屏障上停止的域名。

有没有一个简单的 bash 实用程序来做到这一点(grep、awk、sed)?

从上面的示例中,输出应该是pciereg062的,而不是adv191的。

使用 GNU awk for multi-char RS:

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

相关内容

  • 没有找到相关文章

最新更新