首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将xml文件的内容替换为sed

将xml文件的内容替换为sed
EN

Stack Overflow用户
提问于 2016-09-22 14:33:11
回答 1查看 520关注 0票数 0

我有一个类似下面这样的文件

代码语言:javascript
复制
  <variable name="VOS_BRANCH">
    <name>VOS_BRANCH</name>
    <type>string</type>
    <value>cer_mainline</value>
  </variable>
  <variable name="VOS_BRANCH_LABEL">
    <name>VOS_BRANCH_LABEL</name>
    <type>string</type>
    <value>CER_FREEZE_12_0_0_98000_6_CCT</value>
  </variable>

因此,现在我希望将值CER_FREEZE_12___98000_6_CCT和cer_mainline替换为我作为参数传递给脚本的其他值。

我现在要做的是

代码语言:javascript
复制
xml ed -u "/ENV_VARIABLES/variable[@name='VOS_BRANCH']/value" -v $new_branch_name $file > $file1
mv $file1 $file
xml ed -u "/ENV_VARIABLES/variable[@name='VOS_BRANCH_LABEL']/value" -v $new_branch_label $file > $file1
mv $file1 $file

但现在的要求是使用sed来执行此操作。并且我不确定如何在这里使用sed

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-22 14:44:57

试试这个:

代码语言:javascript
复制
sed "
    /<variable name=\"VOS_BRANCH\">/,/<\/variable>/ s@<value>.*</value>@<value>$new_branch_name</value>@;
    /<variable name=\"VOS_BRANCH_LABEL\">/,/<\/variable>/ s@<value>.*</value>@<value>$new_branch_label</value>@
" "$file"

它会将新内容写入终端。如果您感到满意,可以像以前一样添加> "$file1",也可以将-i选项添加到sed中以就地编辑文件。

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

https://stackoverflow.com/questions/39631834

复制
相关文章

相似问题

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