私は bash スクリプトを書いていますが、XML ファイルに変更を加えて、さまざまなサーブレット名の項目を「disabledController」に置き換える必要があります。
sed を使用してこれを実行できることはわかっていますが、同じ文字列を持つ 2 つの異なる行がありますが、変更する必要があるのは 1 つだけです。
たとえば、これを変更する必要があります。
<servlet>
<servlet-name>CreateCertificateAuthorityBackup</servlet-name>
<servlet-class>com.company.ca.CABackup</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CreateCertificateAuthorityBackup</servlet-name>
<url-pattern>createCertificateAuthorityBackup</url-pattern>
</servlet-mapping>
これに:
<servlet>
<servlet-name>CreateCertificateAuthorityBackup</servlet-name>
<servlet-class>com.company.ca.CABackup</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>disabledControler</servlet-name>
<url-pattern>createCertificateAuthorityBackup</url-pattern>
</servlet-mapping>
sed を次のように使用する場合:
sed "s@<servlet-name>CreateCertificateAuthorityBackup.*@<servlet-name>disabledController</servlet-name>@"
2 番目の項目だけでなく、両方の servlet-name 項目を置き換えます。私がここでやりたいことをする方法はありますか?