【发布时间】:2021-04-01 11:05:14
【问题描述】:
我已经很久没有写过 bash 了,我正在努力想出解决这个问题的最佳方法。我认为 sed 或 awk 会被使用,但我不确定如何使用。
我有这个 xml 文件:
<Projects>
<Project Guid="46824750-4e2d-46bd-bb6d-7c229cde63d5" Name="Example 1" Type="1" LastModified="2020-09-28T20:44:35.36Z" Version="36.0" />
<Project Guid="d1137da2-041c-1f3e-a92b-48b2db9663c8" Name="Example 2" Type="5" LastModified="2020-03-24T21:19:48.517Z" Version="5.0" />
<Project Guid="46824750-4c2d-49c5-8a6c-2c229cff63d5" Name="Example 3" Type="2" LastModified="2020-01-03T18:14:05.047Z" Version="3.2" />
</Projects>
在 bash 脚本中,我需要找到包含 Type="1" 的行,并从同一行中提取该 Guid。请注意,每个 xml 文件中只有一个包含 Type="1"。 sed 可以用来做这个吗?还是我必须走一个 xml 解析路线?
我不能真正安装额外的依赖项或库,因为这是在 Jenkins 代理上运行的,并且获得批准的依赖项的过程是漫长而严格的。理想情况下,这将通过内置的 Bash/UNIX 功能来完成。
关于最佳方法的任何想法?
【问题讨论】:
-
如果这段代码要投入生产,我强烈建议使用
xsltproc。