所以,例如,
A paragraph's newlines would be removed let's say
it contained only single
newlines.
Run Code Online (Sandbox Code Playgroud)
然后我想跳过的东西:
However.
Our previous pair of newlines wouldn't.
Run Code Online (Sandbox Code Playgroud)
它不是一个sed解决方案 - 虽然你当然可以通过s2p运行任何sed - 但使用perl的一个非常简单的解决方案是:
% perl -i.orig -ne 'print unless /^$/' file1 file2 file3
Run Code Online (Sandbox Code Playgroud)
这样做的优点是可以扩展到空白行上的任何空格,如空格和制表符:
% perl -i.orig -ne 'print unless /^\s*$/' file1 file2 file3
Run Code Online (Sandbox Code Playgroud)
如果文件具有各种行结尾(如CR或CRLF),您也可以这样做,假设您运行的是perl 5.10或更高版本:
% perl -0777 -i.orig -ne 's/\R+/\n/' file1 file2 file3
Run Code Online (Sandbox Code Playgroud)
这会将一个或多个Unicode行分隔符的所有序列规范化为单个换行符.
如果您的UTF-8文件可能(例如)其他空行中有U + 00A0 NON-BREAK SPACE,您可以通过使用-CSD命令行开关告诉perl它们是UTF-8来处理它们:
% perl -CSD -i.orig -ne 'print unless /^\s*$/' file1 file2 file3
Run Code Online (Sandbox Code Playgroud)
删除段落我真的不清楚你的意思.我认为你只是想加入段落中的行.
如果是这样 - 如果您想要做的是从段落中挤出换行符,那么您希望这样做:
% perl -i.orig -00 -ple 's/\s*\n\s*/ /g' file1 file2 file3
Run Code Online (Sandbox Code Playgroud)
它可能看起来不像它有效,但它确实:尝试它.
归档时间: |
|
查看次数: |
1090 次 |
最近记录: |