如何添加SGML结束标记?

时间:2015-10-05 21:36:04

标签: vim sed sgml

我有一个SGML文件,看起来有很多<p>个段落隐含了结束标记,如下所示:

<p>Here is one paragraph. 
<p>And here is another. This one contains <i>italics</i>.
<p>Finally, here is another paragraph.

这些段落上没有结束标记。我想让它看起来像这样:

<p>Here is one paragraph.</p> 
<p>And here is another. This one contains <i>italics</i>.</p>
<p>Finally, here is another paragraph.</p>

使用OSS工具有一种简单的方法吗? (像vim,sed等?)

2 个答案:

答案 0 :(得分:1)

在vim中,根据您指定的输入,您可以使用:%s/$/<\/p>/。 请注意,这仅适用于每个段落都是一行的示例。

如果是多行段落,请首先加入所有行:%j,然后将结束标记添加到开始标记:%s/ \+<p>/<\/p><p>/,然后添加最终结束标记:%s/$/<\/p>/。最后使用gqap重排文本。

答案 1 :(得分:0)

%s/<p>\zs\(.*\)/\1<\/p>/应该在Vim中运行,但“经典”解决方案是%s/<p>/<\/p><p>/,然后将第一个</p>移到文本的末尾。