sed用于解析多行

时间:2013-02-04 09:29:56

标签: replace sed

我正在替换一个多行模式:

</p>
<ul>

使用以下sed命令:

sed -e 's|<\/p>\n<ul>|\\begin{itemize}|g'

但它似乎没有正常工作。如何使用sed替换上面的模式。

1 个答案:

答案 0 :(得分:2)

假设你有GNU sed,你可以使用循环:

sed ':a; N; $!ba; s|</p>\n<ul>|\\begin{itemize}|g' file

对于BSD/OSX sed,请尝试:

sed -e ':a' -e 'N' -e '$!ba' -e 's|</p>\n<ul>|\\begin{itemize}|g' file

根据评论,只需添加每行开头的空格:

sed ':a; N; $!ba; s| *</p>\n *<ul>|\\begin{itemize}|g' fileg