6

我想将我的 xml“abc.xml”元素的值更改为存储在变量 $value 中的值,即

$值 = 'abc';

<annotation>
    <filename>img_000001016592.png</filename>
    <folder>Rec_20121219_171905</folder>
    <source>
        <sourceImage>The MIT-CSAIL database of objects and scenes</sourceImage>
        <sourceAnnotation>LabelMe Webtool</sourceAnnotation>
    </source>
    <imagesize>
        <nrows>481</nrows>
        <ncols>640</ncols>
    </imagesize>
</annotation>

需要 shell 脚本,它有一个变量,它包含变量中的值,然后将 abc.xml 的元素文件名的值更改为变量中的值。

4

1 回答 1

9

也许您的意思是使用 sed。

value='abc'
sed -i "s|abc.txt|$value|g" abc.xml

您必须在 shell 中运行它,或者作为带有 h​​eader 的 shell 脚本运行#!/bin/sh

- - 更新 - -

#!/bin/sh
value="something"
sed -i "s|\(<filename>\)[^<>]*\(</filename>\)|\1${value}\2|" abc.xml

g如果您需要在一行中替换多个实例,请添加到 sed 命令。

sed -i "s|\(<filename>\)[^<>]*\(</filename>\)|\1${value}\2|g" abc.xml
于 2013-08-13T14:59:40.193 回答