用Perl / AWK将两个连续的行合并成一行

我有如下的数据:

abcd join abcd efgh join efgh 

我想连续两个连成一条线。 导致:

 abcd join abcd efgh join efgh 

我怎样才能在Perl / AWK中做到这一点?

 $ sed 'N;s/\n/ /' input.txt abcd join abcd efgh join efgh 

最简单的方法是:

 paste - - < FILE 

这加入使用空间,而不是一个选项卡:

 paste -d" " - - < FILE 

Perl的:

 perl -pe's/\n/ / if $. % 2' file 

高尔夫挑战:缩短5个字以上。

高尔夫挑战方案:

 perl -pe'$.%2&&s/ / /' file 
 cat input | paste -sd' \n' 

粘贴分隔符之间的交替,如果列表给出。

我的第一本能:

 perl -lne 'if ($. % 2) { $last = $_; } else { print "$last $_" }' 

稍微简洁的版本受@ kev的sed解决方案启发:

 perl -lpe '$_ .= " " . <>; chomp' 

但是我认为sed赢得了这一轮。

 awk '{getline a; printf "%-s\n", $0 " " a}' file