Tengo el siguiente formato del archivo:
<common>
fitnes=0
genetic=1
method=0
</common>
<inputs>
foo=bar
bar=foo
</inputs>
<limits>
balance=200.00
</limits>
y me gustaría eliminar todo lo que está entre <inputs>
y </inputs>
(excluyendo el patrón por sí mismo) y reemplazarlo con el contenido de otro archivo (por ejemplo foo.txt
). En otras palabras, las líneas con foo=bar
y bar=foo
serían reemplazadas por otro contenido.
Probablemente puede ser similar a cómo elimina una coincidencia de varias líneas , como:
:g/<inputs/,/inputs>/d
pero no estoy seguro de qué debo reemplazar d
para insertar el contenido de otro archivo, pero quiero mantener el patrón coincidente.
Un enfoque similar sería eliminar el contenido interno de la etiqueta html , como
:/<inputs>/norm vitd
pero entonces no sé cómo agregarías el contenido del archivo.
Idealmente, estoy tratando de encontrar un revestimiento, ya que será parte de otro script.
¿Cómo puedo lograr eso?
ex
script donde puedo especificar qué archivo insertar según los argumentos de entrada del usuario.Si este es otro intento de analizar XML con herramientas que no son XML, no lo haga.
Las soluciones aquí son válidas, pero la intención podría no serlo. Si el XML no proviene de una fuente bien domesticada, ¡podría obtener escapes, CDATA o espacios en blanco en la etiqueta!
Entonces xsltproc del comando en vi puede lidiar con eso.
fuente
ini
archivo de tener esos 3-XML como las etiquetas.