Я хочу изменить значение определенного свойства тега XML.
Есть много вопросов о том, как обрабатывать sed, но проблема здесь заключается в новой строке внутри тега.
Iхотите изменить значение после name=
, и его нужно искать в теге <package ... >
. XMLStarlet не поддерживается.
Coverage.xml
<package branch-rate="0.031746031746" complexity="0.0"
line-rate="0.159420289855" name="include">
<classes>
<class branch-rate="0.0" complexity="0.0"
Моя лучшая попытка на данный момент:
sed -n '/<package/ {
:a
n
/<classes>/q
s/name=/xxxx/g
}' coverage.xml
Есть ли у вас идея?
ОБНОВЛЕНИЕ 2: Расширена зона покрытия.xml с подходом @ RavinderSingh13
<package branch-rate="0.031746031746" complexity="0.0"
line-rate="0.159420289855" name="NEW_VALUE">
<classes>
<class branch-rate="0.0" complexity="0.0"
filename="NEW_VALUE"
name="NEW_VALUE">