Expresión regular utilizando sed o Perl para comentar un bloque XML.
Estoy intentando comentar una sección de web.xml dentro de openAM utilizando solo sed
o perl -pi
(las únicas herramientas disponibles para mí).
Entonces, copiaré aquí:
<servlet-mapping>
<servlet-name>AgentConfigurationServlet</servlet-name>
<url-pattern>/agentconfig/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>VersionServlet</servlet-name>
<url-pattern>/ccversion/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>FSServlet</servlet-name>
<url-pattern>/federation/*</url-pattern>
</servlet-mapping>
pero estoy tratando de comentar solo el <servlet-mapping>...</servlet-mapping>
(pero solo el que tiene /ccversion. Intenté todo y no pude hacer que funcionara.
Lo que intenté:
sed -e "s/(<servlet-mapping>[\r\n]+.*[\r\n]+.*\/ccversion.*[\r\n]+.*)/<\!-- \$1 -->/"
davy.ai
Para comentar solo la sección que incluye /ccversion en web.xml dentro de openAM utilizando
sed
operl -pi
, puede intentar el siguiente comando en una ventana del terminal:Este comando hará lo siguiente:
-i.bak
: editará el archivo en su lugar y creará un archivo de copia de seguridad con la extensión .bak (por si acaso)./ccversion/,/<\/servlet-mapping>/
: busca la línea que incluye “ccversion” y luego busca la siguiente etiqueta de cierre(esto incluirá todo lo que está dentro).
s/^/<!-- /
: agrega<!--
al principio de cada línea.s/$/ -->/
: agrega-->
al final de cada línea.Esto efectivamente comentará solo la sección que incluye /ccversion.
Nota: asegúrese de hacer una copia de seguridad de su archivo web.xml original antes de ejecutar este comando, por si acaso algo sale mal.