[英]Extract an XML element value in shell script
我的 sample.xml 文件中有类似下面的内容,并且仅当artifactId为app1时才想提取版本标签中的值,因为我们将使用 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.