繁体   English   中英

在 shell 脚本中提取一个 XML 元素值

[英]Extract an XML element value in shell script

我的 sample.xml 文件中有类似下面的内容,并且仅当artifactIdapp1时才想提取版本标签中的值,因为我们将使用 shell 脚本在给定文件中拥有多个具有不同artifactId的相同标签集.

<groupId>abc.app1</groupId>
<artifactId>app1</artifactId>
<packaging>pom</packaging>
<name>app1 ${version}</name>
<version>1.2.50</version>

我的最终 output 如下所示,

variable1=1.2.50

请注意,我需要读取一个文件并提取该字符串。

要解析 xml 文件,请使用 xml 解析器。

xmllint --xpath 'string(//version)' -

小心 XML 模式提取。 如果模式是层次结构,它可能会变得奇怪,您可能必须使用 XML 专用库。

但是,在您的示例中,您可以结合使用 grep 和 cut 来提取您的模式:

cat $file | egrep '<version>' \
| cut '> -f 2 | cut '<' -f 1

暂无
暂无

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

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