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>

Это вывод из MTPuTTy в формате XML.

У меня есть список IP-адресов в формате TXT по одному на строку, я хочу заменить SAMPLE на каждую строку, например, список такой

198.168.1.1
198.168.1.2
198.168.1.3

Я хочу, чтобы результат был таким

<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>

Я опустил строки, которые не изменились для упрощения.

Как я могу автоматизировать это?

1 ответ1

1

Вы можете использовать Regex Search and Replace.

Ищи

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

Заменить

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

Используйте Ctrl-Enter для ввода новой строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .