Substituir uma variável por múltiplos dados

1
<?xml version="1.0" encoding="UTF-8"?>
<Servers>
    <Putty>
        <Node Type="1">
            <SavedSession>Default Settings</SavedSession>
            <DisplayName>SAMPLE</DisplayName>
            <ServerName>SAMPLE</ServerName>
            <PuttyConType>4</PuttyConType>
            <Port>22</Port>
            <UserName>root</UserName>
            <Password>whatever</Password>
            <PasswordDelay>0</PasswordDelay>
            <CLParams>SAMPLE -ssh -P 22 -l root</CLParams>
            <ScriptDelay>0</ScriptDelay>
        </Node>
    </Putty>
</Servers>

Esta é a saída do MTPuTTy no formato XML.

Eu tenho uma lista de IPs em formato txt, um por linha, o que eu quero é substituir SAMPLE por cada linha, por exemplo, a lista é assim

198.168.1.1
198.168.1.2
198.168.1.3

Eu quero que a saída seja assim

<Node Type="1">
    <DisplayName>198.168.1.1</DisplayName>
    <ServerName>198.168.1.1</ServerName>
    <CLParams>198.168.1.1 -ssh -P 22 -l root</CLParams>
</Node>

<Node Type="2">
    <DisplayName>198.168.1.2</DisplayName>
    <ServerName>198.168.1.2</ServerName>
    <CLParams>198.168.1.2 -ssh -P 22 -l root</CLParams>
</Node>

<Node Type="3">
    <DisplayName>198.168.1.3</DisplayName>
    <ServerName>198.168.1.3</ServerName>
    <CLParams>198.168.1.3 -ssh -P 22 -l root</CLParams>
</Node>

omiti as linhas que não foram alteradas para simplificação.

Como posso automatizar isso?

    
por Helme 16.08.2017 / 20:00

1 resposta

1

Você pode usar o Regex Search and Replace.

Pesquise

^([0-9.]+\.([0-9]+))$

Substituir por

<Node Type="$2">
    <DisplayName>$1</DisplayName>
    <ServerName>$1</ServerName>
    <CLParams>$1 -ssh -P 22 -l root</CLParams>
</Node>

Use Ctrl-Enter para entrar na nova linha.

    
por 17.08.2017 / 01:25