我如何替换'' 和 '\n' 和 '' 替换为 '\n' 使用 sed?

我如何替换'' 和 '\n' 和 '' 替换为 '\n' 使用 sed?

我有以下文件,我想用<p>和替换。<p>\n</p>\n</p>sed

我的输入文件包含以下几行:

<p>This is home.</p>
<p>These are fruits.</p>

我的输出文件应该像下面给出的文件。

<p>
This is home.
</p>
<p>
These are fruits.
</p>

答案1

你可以做:

$ sed 's/<p>/&\n/g;s/<\/p>/\n&/g' file 
<p>
This is home.
</p>
<p>
These are fruits.
</p>

替换运算符右侧的&会扩展为左侧匹配的内容。因此,在 中s/<p>/&\n/&会扩展为<p>,而在 中s/<\/p>/\n&/, 会扩展为</p>g( s///g) 会替换所有匹配项,因此如果您在一行中sed有多个<p>或 ,它也会起作用。</p>

答案2

使用sed

$ cat file.txt 
<p>This is home.</p>
<p>These are fruits.</p>

$ sed -r 's/^([^>]+>)([^<]+)(<.*)/\1\n\2\n\3/' file.txt 
<p>
This is home.
</p>
<p>
These are fruits.
</p>

相关内容