modal
请帮助我提供准确的shell命令,以使用分隔符解析xml并以期望的格式写入值
答案 0 :(得分:0)
假设您将XML封装在一个根标记中,对于POM文件来说,可能是<project>
:
<project>
<dependency>
<groupId>com.dtd</groupId>
<artifactId>dtc-api-commons</artifactId>
<version>3.3.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.dtd</groupId>
<artifactId>dtc-api-commons</artifactId>
<version>3.3.1_1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.dtd</groupId>
<artifactId>dtc-api-commons</artifactId>
<version>3.3.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.dtd</groupId>
<artifactId>dtc-api-commons</artifactId>
<version>3.3.0-SNAPSHOT</version>
</dependency>
</project>
您可以使用xmlstarlet:
xmlstarlet sel -T -t -m '//project/dependency' -v 'concat(groupId,":",artifactId,":",version)' -nl pom.xml
com.dtd:dtc-api-commons:3.3.2-SNAPSHOT
com.dtd:dtc-api-commons:3.3.1_1-SNAPSHOT
com.dtd:dtc-api-commons:3.3.1-SNAPSHOT
com.dtd:dtc-api-commons:3.3.0-SNAPSHOT
sel
:选择
-T
:输出文本
-t
:模板
-m
:匹配xpath
-v
:获取与:
串联的所有3个节点的值。
-nl
:打印换行符