Sed 如何用某些值替换空双引号

Sed 如何用某些值替换空双引号,sed,Sed,我有一个语法如下的xml <test key="NAME1" value=""> <test key="NAME2" value=""> 如何使用sed命令将值替换为空字符串,并使用一些基于键名的值。用这样的东西 <test key="NAME1" value="123"> <test key="NAME2" value="234"> 使用XML感知工具来处理XML,sed对于这项工作来说太简单了 例如,在中,您可以编写: my $values

我有一个语法如下的xml

<test key="NAME1" value="">
<test key="NAME2" value="">
如何使用sed命令将值替换为空字符串,并使用一些基于键名的值。用这样的东西

<test key="NAME1" value="123">
<test key="NAME2" value="234">

使用XML感知工具来处理XML,sed对于这项工作来说太简单了

例如,在中,您可以编写:

my $values = {
    NAME1 => 123,
    NAME2 => 234,
};

open file.xml ;
for my $test in //test[@value=""] {
    my $key = $test/@key ;
    set $test/@value { $values->{$key} } ;
}
save :b ;
不要使用sed来处理XML,请使用XML感知工具。