我有一个看起来像这样的文件
<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_0_0_98000_6_CCT和cer_mainline替换为我作为参数传递给脚本的其他值。
我现在正在做的是
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
答案 0 :(得分:1)
试试这个:
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
以便就地编辑文件。