Eu tenho o seguinte formato do arquivo:
<common>
fitnes=0
genetic=1
method=0
</common>
<inputs>
foo=bar
bar=foo
</inputs>
<limits>
balance=200.00
</limits>
e eu gostaria de excluir tudo o que está entre <inputs>
e </inputs>
(excluindo o padrão próprio) e substituí-lo pelo conteúdo de outro arquivo (por exemplo foo.txt
). Em outras palavras, as linhas com foo=bar
e bar=foo
seriam substituídas por outro conteúdo.
Provavelmente, pode ser semelhante à maneira como você exclui uma correspondência de várias linhas , como:
:g/<inputs/,/inputs>/d
mas não tenho certeza com o que devo substituir d
para inserir o conteúdo de outro arquivo, mas quero manter o padrão correspondente.
Uma abordagem semelhante seria remover o conteúdo interno da tag html , como
:/<inputs>/norm vitd
mas não sei como você adicionaria o conteúdo do arquivo.
Idealmente, estou tentando encontrar um liner, pois ele fará parte de outro script.
Como posso conseguir isso?
ex
script onde posso especificar qual arquivo inserir, dependendo dos argumentos de entrada do usuário.Se essa é outra tentativa de analisar XML com ferramentas não XML, não faça isso.
As soluções aqui são válidas, mas a intenção pode não ser. Se o XML não for de uma fonte bem domesticada, você poderá obter escapes, CDATA ou espaços em branco na tag!
Portanto, o xsltproc do comando no vi pode lidar com isso.
fonte
ini
arquivo bem documentado com essas três tags semelhantes a XML.