use*_*235 5 xml text-processing regular-expression
我有一个 XML 文件,我需要将其附加到一组特定的标签之后。基本上文件结构如下所示:
<key>servers</key>
<dict>
... Server Details ...
</dict>
Run Code Online (Sandbox Code Playgroud)
我想匹配的行:
<key>servers</key>
<dict>
Run Code Online (Sandbox Code Playgroud)
并在 之后附加一段 XML 指定服务器连接<dict>
。我在它自己的文本文件中有新的 XML 块,因为它很长。
我已经看过sed
并awk
要做到这一点,但我遇到了墙。我也看到了使用perl
来完成这个的例子,但我对 Perl 不太熟悉。据我了解,虽然,sed
和awk
都不是很大,在多匹配。
我需要进行多行匹配的原因是因为该<dict>
标记在 XML 文件中经常使用,我需要将一个块附加到该<key>servers</key>
部分,而不是替换其全部内容。
你可以这样做:
awk '{print}
$0 == "<dict>" && previous == "<key>servers</key>" {
system("cat other-file.xml")
}
{previous = $0}'
Run Code Online (Sandbox Code Playgroud)