2

次の構成を含むバインド構成のファイルがあります。

zone "domain1.com" {
        type master;
        file "masters/domain1.com";
        allow-transfer {
                dnscontroller_acl;
        };
};


zone "domain2.com" {
        type master;
        file "masters/domain2.com";
        allow-transfer {
                dnscontroller_acl;
        };
};

zone "domain3.com" {
        type master;
        file "masters/domain3.com";
        allow-transfer {
                dnscontroller_acl;
        };
};

zone "domain4.com" {
        type master;
        file "masters/domain4.com";
        allow-transfer {
                dnscontroller_acl;
        };
};

bash を使用してファイルからゾーン構成 (zoneファイル名から始まり の終わり) を削除するにはどうすればよいですか?};

4

2 に答える 2

7

sed特定のゾーンの構成を削除するために使用できます。

sed '/^zone "domain4.com" {$/,/^};/d' file

引数としてゾーンを取ることができるスクリプトが必要な場合は、she-bang と引数を追加するだけです。

#!/bin/bash
sed '/^zone "'"$1"'" {$/,/^};/d' file
于 2012-07-31T10:52:39.563 に答える
1

ファイルの順序が整っている場合は、awkレコードとフィールドの自動分離を使用できます。

awk '
  BEGIN { RS = ORS = "\n\n"; FS="\n" } 
  $1 !~ /domain3/
' file

最初の行に「domain3」が含まれるゾーンを削除します。

于 2012-07-31T12:00:49.603 に答える