我需要一个(sed,awk)shell脚本,或者更好的是,使用一个vim命令来删除带有单个左大括号的行后面的任何空白行:
void func()
{
foo();
}
void bar()
{
helloWorld();
}
应该成为:
void func()
{
foo();
}
void bar()
{
helloWorld();
}
有什么想法吗?
答案 0 :(得分:3)
试试这个
$ awk 'NF{f=0}/^ *{/{ f=1 } f==1 && !NF{next}1' file
void func()
{
foo();
}
一点解释:
答案 1 :(得分:3)
的Vim:
:%s/^{\(\n\s*\)*/{\r /g
答案 2 :(得分:0)
在Vim中执行此操作的最简单方法可能是以下替换。
:%s/^\s*{\n\zs\_s*\n//
答案 3 :(得分:0)
为了好玩,我想用vim的全局命令来解决这个问题:
:g /{/ s/\n\+/\r/
这很短暂。我希望它有效! : - )