我正在尝试解析命令行工具的输出。它直接输出 XML STDOU
,我想解析它。
- 该工具输出完整的 XML 文档,如下所示:
我的目标是解析该输出并且只解析<date>
标签之间的字符串,但由于文档可能包含另一个<date>
标签,它必须只检查<date>
后面的<key>SULastCheckTime</key>
。(这是一个混乱的情况,那里有新的行/空格)。
目前我正在使用以下命令解决这种情况:
tool... | grep -A1 '<key>SULastCheckTime</key>' | grep 'string.$' | sed -e 's,.*<date>\([^<]*\)</date>.*,\1,g'
它工作正常,但是你可以看到它非常混乱,我不能写更好的东西?你能帮我做得更好吗?
谢谢!
PS:由于我在 OSX 中执行此操作,因此我没有新的 GNUgrep
选项。顺便说一句,bash 版本是 3.2.48(1)。而且...我负担不起安装其他工具来以更好的方式解析 XML。