我正在尝试使用sed提取版本中包含的元素。我有一个匹配所有元素的模式([0-9]{1,2}\.[0-9]{1}\.[0-9]{1}
),但我只需要第一个匹配。
目标是能够输出匹配,并将匹配 - 没有引号 - 输出到标准输出。
关于如何做到这一点的任何想法?
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.company.application" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
...
我
答案 0 :(得分:1)
不要使用正则表达式来解析xml
,例如使用xml解析器,xmllint,它捆绑在大多数linux / mac上,即:
xmllint --xpath 'string(//*[local-name()="widget"]/@version)' xmlfile
# 1.0.0
答案 1 :(得分:0)
使用xmlstarlet工具的解决方案:
xmlstarlet sel -t -m '_:widget' -v "@version" -n xmlfile
输出:
1.0.0
-v "@version"
- 获取version
属性