es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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 -->/"
Tags:  , ,

Answer

  1. Avatar for 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:

    sed -i.bak '/ccversion/,/<\/servlet-mapping>/ s/^/<!-- /; s/$/ -->/' web.xml
    

    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.

Comments are closed.