之間多餘的空行,我想有一個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中的解決方案從命令行運行。 –