Replace 如何删除所有出现的新行“\n‘;,但不是多行

Replace 如何删除所有出现的新行“\n‘;,但不是多行,replace,sed,Replace,Sed,我想删除文件中的所有\n标记,但不删除\n\n标记 以下是一个例子: this is a test 应该是: thisis a test 我尝试使用sed:a;Ns/\n/g',但没有成功。使用awk您可以尝试以下方法: awk '{$1=$1}1' RS="\n\n" ORS="\n\n" file this is a test 编辑:另一个awk变体 awk '{printf "%s ",$0} !NF {print "\n"}' file 最后一点: awk '{print

我想删除文件中的所有
\n
标记,但不删除
\n\n
标记

以下是一个例子:

this
is 

a test
应该是:

thisis

a test

我尝试使用
sed:a;Ns/\n/g'
,但没有成功。

使用
awk
您可以尝试以下方法:

awk '{$1=$1}1' RS="\n\n" ORS="\n\n" file
this is

a test
编辑:另一个
awk
变体

awk '{printf "%s ",$0} !NF {print "\n"}' file
最后一点:

awk '{printf "%s "(!NF?"\n\n":""),$0}' file
如果您不喜欢字段之间的空格,则只需删除
%s
后面的空格,如下所示:

awk '{printf "%s"(!NF?"\n\n":""),$0}' file
or
awk '{printf (!NF?RS RS:x) $0}' file

使用
sed
的一种方法是:

sed ':a;$!{N;ba};s/\([^\n]\)\n\([^\n]\)/\1\2/g' file
thisis

a test
Perl解决方案:

perl-pe'/./并咀嚼或打印“\n”文件
这可能适合您(GNU-sed):


如果一行有三个换行符,该怎么办?我没有您喜欢的情况作为输出?
sed ':a;$!N;/\n$/!s/\n//;ta' file