首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sed更改XML属性值

使用sed更改XML属性值
EN

Stack Overflow用户
提问于 2017-07-13 20:37:14
回答 1查看 1.1K关注 0票数 0

我需要在xml文件的version属性值中添加一个内部版本号:

代码语言:javascript
复制
<widget id="com.test.enterprise.operationsnew" version="2.4.2.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

在我的bash脚本中,我尝试过:

代码语言:javascript
复制
BUILD_NUMBER=1
VERSION="$(xmllint \
  -xpath 'string(//*[local-name()="widget"]/@version)' config.xml | \
  cut -f1-3 -d.)"
CFBundleVersion="${VERSION}.${BUILD_NUMBER}"

sed -i '' \
  -e 's#version="[0-9].[0-9].[0-9].[0-9]"#version="${CFBundleVersion}"#g' \
  config.xml

CFBundleVersion变量会插入,但不会被解析:

代码语言:javascript
复制
<widget id="com.test.enterprise.operationsnew" version="${CFBundleVersion}" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

我怎样才能用sed正确地做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-13 20:51:00

代码语言:javascript
复制
 sed -e 's#version="[0-9].[0-9].[0-9].[0-9]"#version="'${CFBundleVersion}'"#g' config.xml

在变量两边添加单引号以展开它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45080826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档