我想在文件中删除所有\n
代码,但不删除\n\n
代码
以下是一个例子:
this
is
a test
应该是:
thisis
a test
我曾尝试使用sed ':a;N;s/\n/g'
进行操作,但没有成功。
答案 0 :(得分:3)
sed
的一种方法是:
sed ':a;$!{N;ba};s/\([^\n]\)\n\([^\n]\)/\1\2/g' file
thisis
a test
答案 1 :(得分:3)
Perl解决方案:
perl -pe '/./ and chomp or print "\n"' file
答案 2 :(得分:2)
使用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
如果您不喜欢字段之间的空格并获取thisis
,只需删除%s
之后的空格:
awk '{printf "%s"(!NF?"\n\n":""),$0}' file
or
awk '{printf (!NF?RS RS:x) $0}' file
答案 3 :(得分:2)
这可能适合你(GNU sed):
sed ':a;$!N;/\n$/!s/\n//;ta' file