之间多余的空行,我想有一个Perl表达式来运行命令行删除大括号中的额外线在这种情况下:删除花括号
// some code
}
<-- empty line to remove
}
// more code
之间多余的空行,我想有一个Perl表达式来运行命令行删除大括号中的额外线在这种情况下:删除花括号
// some code
}
<-- empty line to remove
}
// more code
如果你只希望它这样做时,第二个花括号是在该行的开头:
perl -0777 -pi -we's/}\n\n}/}\n}/g' filename
如果即使它是缩进的:
perl -0777 -pi -we's/}\n(\n[^\S\n]*(?=}))/}$1/g' filename
如果有可能在“空行”或第一个花括号之后多余的空格:
perl -0777 -pi -we's/(}[^\S\n]*\n)[^\S\n]*\n([^\S\n]*(?=}))/$1$2/g' filename
最后一个是我正在寻找的,谢谢。 – alcala
您可以使用正则表达式来代替(?<=})\s*\n(?:\s*\n)+(\s*})
与\n$1
。不幸的是,我不知道Perl,所以我不介意是否有人偷了这个模式来写一个完整的答案。
可能重复的[Perl - 无法清除空白行] (http://stackoverflow.com/questions/18102670/perl-cant-strip-blank-lines) – geedubb
它似乎没有重复,特别是因为用户正在要求在perl中的解决方案从命令行运行。 –