Содержимое образца. xml похоже на приведенное ниже.
<Name="com.name1.sample.date" level="ERROR"/>
<Name="com.name2.test" level="WARNING">
<Name="com.name3.type.yeah.trace" additivity="false" level="DEBUG">
Я пытаюсь использовать sed и просто заменяю значение "параметра уровня" во всех строках. Однако использование (*) в качестве подстановочного знака не работает для сопоставления с шаблоном.
Я бы хотел, чтобы результат был таким, как показано ниже.
<Name="com.name1.sample.date" level="INFO"/>
<Name="com.name2.test" level="WARN">
<Name="com.name3.type.yeah.trace" additivity="false" level="UPDATE">
В основном: из этого шаблона *level="<pattern>"*
К этому шаблону *level="<updated>"*
Где * может быть любым шаблоном.
Я провел здесь небольшое исследование и смог заставить его работать для подстановочного знака в начале, но не в конце, поэтому Я делаю особую обработку для каждого паттерна, имеющего разные концовки. Ниже мой код.
sed 's|="'"$logger_type"'".*|="'"$logger_type"'" level="'"$update_check"'"/>|g'
Где $ logger_type - это имя, на которое ссылается, и его уровень должен быть обновлен до любого содержимого $ update_check