0

我有包含如下文本的 html 文件:

<p>يورونيوز: <br />
&#8220; يقال إن للقمر تأثير كبير على نمو المزروعات، وأزهار الحدائق وخاصة النبيذ . &#8220; </p>

现在我想删除
并将两行连接成一行。我怎样才能做到这一点?不得不提的是,“用于双引号,我在连接后替换它。我使用了这段代码,但它不起作用:

sed -i -e '/<br \/>[ \r\t\n]+/d' 1.html
4

2 回答 2

1

sed逐行读取内容,因此您不能只删除 '\n' 字符。默认情况下不可见sed。您需要先阅读将下一行附加到模式空间,然后才能删除\n字符:

sed -e '/[\s]+$/{N;d}' 1.html

有一件事我不明白:你要删除 line with<br>和下一行吗?如果是这样,上面的代码是正确的。

于 2012-07-02T08:05:12.980 回答
0

rush 正确命名了您的代码不起作用的原因;这个版本做你想要的。

sed -i '/<br \/>\s*$/{N;s/<br \/>\s*//}' 1.html
于 2014-04-01T12:32:35.030 回答