-1

我想找到一个文本块,然后用 sed 将其附加到另一个文本块。由于文本涉及的性质,我找不到正确的 sed 命令。

假设我有一个包含此文本的文件

[...]
    zone "." IN {
        type hint;
        file "named.ca";
    };
[...]

在找到上述文本后,我想将以下文本附加到同一文件中

zone    "$variable" {
    type master;
    file "$variable.fwd";
    allow-update { none; };
};

注意特殊字符,例如点,“”,{}和变量的存在。这种字符的存在让我很痛苦,谁能告诉我如何使用heredoc来实现这一点问候

4

1 回答 1

1

Heredoc 在这里不会有太大帮助。

sed -ni '1h;1!H;${g;s/    zone "." IN {\
        type hint;\
        file "named.ca";\
    };\
/&zone    "$variable" {\
    type master;\
    file "$variable.fwd";\
    allow-update { none; };\
};\
/;p}' file

有关说明,请参阅多行 sed 搜索和替换

于 2013-09-12T12:00:17.483 回答