我有以下文件,我想用<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>