Vim/Sed:仅删除单个空行

Vim/Sed:仅删除单个空行,vim,sed,Vim,Sed,如何仅删除sed/vim中的单个空行 已经解决了几个问题,但是我想保留多个空行(或作为单个空行),以便: this kind of thing 变成 this kind of thing 这个很好用: :%s/^\n\(^\n\)*/\1/ 这个很好用: :%s/^\n\(^\n\)*/\1/ 另一种方法是使用:g。它并不比:%s解决方案更快或更好,但感觉它更容易阅读(至少对我来说): 另一种方法是使用:g。它并不比:%s解决方案更快或更好,但感觉它更容易阅读(至少对我来说)

如何仅删除sed/vim中的单个空行

已经解决了几个问题,但是我想保留多个空行(或作为单个空行),以便:

this

kind

of


thing
变成

this
kind
of 

thing

这个很好用:

:%s/^\n\(^\n\)*/\1/

这个很好用:

:%s/^\n\(^\n\)*/\1/

另一种方法是使用:g。它并不比:%s解决方案更快或更好,但感觉它更容易阅读(至少对我来说):


另一种方法是使用:g。它并不比:%s解决方案更快或更好,但感觉它更容易阅读(至少对我来说):

这可能适用于您(GNU-sed):

这将删除两个非空行和其他空行之间的空行,或者:

sed '/^\n*$/!b;N;//!D;:a;z;N;//ba' file
如上所述,但这也会将多个空行压缩为一个空行。

这可能适用于您(GNU-sed):

这将删除两个非空行和其他空行之间的空行,或者:

sed '/^\n*$/!b;N;//!D;:a;z;N;//ba' file

如上所述,但这也会将多个空行压缩为一个空行。

实际上,您链接的帖子中的一些答案可以解决一些您想要的问题。例如,我敢打赌你可以调整一下。@Telemachus看到了这一点,并在提问之前玩了一会儿,但虽然很清楚如何定义“n_blank>=2/3/4/5”,但不清楚如何扭转这一限制。实际上,你链接的帖子中的一些答案解决了一些你想要的问题。例如,我打赌你可以调整一下。@Telemachus看到了这一点,并在问之前玩了一会儿,但虽然很清楚如何定义“n_blank>=2/3/4/5”,但不清楚如何反转这个限制。Brill,按照锡上的说明做;应该想到“比赛并把它放回去”。。。干杯布里尔,照罐头上写的做;应该想到“比赛并把它放回去”。。。干杯哦,没关系。我没看到你想保留多行。哦,没关系。我没看到你想保留多行。