我试过:
sed -i 's/\n+/\n/' file
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
我仍然想要单行中断。
输入:
abc
def
ghi
jkl
Run Code Online (Sandbox Code Playgroud)
期望的输出:
abc
def
ghi
jkl
Run Code Online (Sandbox Code Playgroud)
这可能对你有用(GNU sed):
sed '/^$/{:a;N;s/\n$//;ta}' file
Run Code Online (Sandbox Code Playgroud)
这会将多个空行替换为单个空行。
但是,如果您想在每个非空行之后放置一个空行,则:
sed '/^$/d;G' file
Run Code Online (Sandbox Code Playgroud)
它将删除所有空行,并且仅将一个空行附加到非空行。
使用 awk(gnu 或 BSD)您可以执行以下操作:
awk -v RS= -v ORS='\n\n' '1' file
abc
def
ghi
jkl
Run Code Online (Sandbox Code Playgroud)
还使用perl
:
perl -pe '$/=""; s/(\n)+/$1$1/' file
abc
def
ghi
jkl
Run Code Online (Sandbox Code Playgroud)