У меня есть config.xml образец файл, который выглядит следующим образом:СЕПГ команды заменить второе вхождение тегов XML
<maven2-moduleset>
<actions/>
<jdk>JDK 6 Update 26</jdk>
<publishers>
<hudson.plugins.sonar.SonarPublisher plugin="[email protected]">
<jdk>jdk1.8</jdk>
</hudson.plugins.sonar.SonarPublisher>
</publishers>
</maven2-moduleset>
Я хотел изменить второе вхождение <jdk></jdk>
тега. Поэтому я использовал команду sed для этого, как показано ниже:
sed -i "s/<jdk>\.*<\/jdk>/<jdk>jdk1.7.0_76<\/jdk>/2" config.xml
Но в этом файле не было изменений. Где я иду не так?
Примечание: второе вхождение тега jdk может содержать любую версию jdk. Я хочу заменить любое значение (версию), указанное в этом теге, на это значение = "jdk1.7.0_76". и, Я не могу использовать perl или xmlstarlet.
Плюс один для предложения, как писать строгие правила. (например, 'jdk [0-9.] *' вместо '. *') & «совпадение только между hudson» было хорошим. – anishsane
так хорошо объяснил @julian. Благодарю. Оно работало завораживающе. –