1

вау, плохое название, но вот что я хочу сделать. Текст-файл-1 содержит:

123.com
234.com
567.com

Мне нужно, чтобы эти значения были вставлены в новый документ в двух местах, а затем переместились на следующую строку и вставили.

Выходной файл будет выглядеть так

zone "123.com" IN {
    type master;
    file "/etc/bind/zones/db.123.com";
allow-update { none; };allow-transfer {10.10.10.10; };
};


zone "234.com" IN {
    type master;
    file "/etc/bind/zones/db.234.com";
allow-update { none; };allow-transfer {10.10.10.10; };
};


zone "567.com" IN {
    type master;
    file "/etc/bind/zones/db.567.com";
allow-update { none; };allow-transfer {10.10.10.10; };
};

Вы можете видеть, что домен из первого файла вставляется в 2 места в результате. Я новичок в партии и понятия не имею, как начать это. Любая помощь действительно ценится.

1 ответ1

0

Ниже приведен скрипт оболочки Bash .

#!/bin/bash

while read line
do
    cat <<RECORD
    zone "${line}" IN {
        type master;
            file "/etc/bind/zones/db.${line}";
        allow-update { none; };allow-transfer {10.10.10.10; };
    };

RECORD
done < Text-file-1

И версия Python для Linux и Windows .

text = r"""
zone "%s" IN {
            type master;
                file "/etc/bind/zones/db.%s";
                allow-update { none; };allow-transfer {10.10.10.10; };
                };
"""

lines = [ x.strip() for x in open('Text-file-1').readlines() ]

for line in lines:
    print(text % (line, line))

Выход:

zone "123.com" IN {
            type master;
                file "/etc/bind/zones/db.123.com";
                allow-update { none; };allow-transfer {10.10.10.10; };
                };


zone "234.com" IN {
            type master;
                file "/etc/bind/zones/db.234.com";
                allow-update { none; };allow-transfer {10.10.10.10; };
                };


zone "567.com" IN {
            type master;
                file "/etc/bind/zones/db.567.com";
                allow-update { none; };allow-transfer {10.10.10.10; };
                };

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