как заменить пустые двойные кавычки некоторым значением - PullRequest
0 голосов
/ 14 сентября 2018

у меня есть XML с синтаксисом ниже

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

Как заменить значение пустой строкой на некоторые значения, основанные на имени ключа, используя команду sed. С чем-то вроде этого

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

1 Ответ

0 голосов
/ 14 сентября 2018

Используйте XML-осведомленный инструмент для обработки XML, sed слишком прост для работы.

Например, в xsh вы можете написать:

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 ;
...