我有如下数据:
abcd
join abcd
efgh
join efgh
我想将两个连续的对加入一行。 所得:
abcd join abcd
efgh join efgh
如何在Perl / AWK中完成?
答案 0 :(得分:13)
$ sed 'N;s/\n/ /' input.txt
abcd join abcd
efgh join efgh
答案 1 :(得分:7)
最简单的方法是:
paste - - < FILE
这是使用空格而不是制表符连接:
paste -d" " - - < FILE
答案 2 :(得分:4)
的Perl:
perl -pe's/\n/ / if $. % 2' file
高尔夫挑战:将上述内容缩短5个字符。
高尔夫挑战赛解决方案:
perl -pe'$.%2&&s/
/ /' file
答案 3 :(得分:3)
cat input | paste -sd' \n'
如果给出了列表,则粘贴在分隔符之间交替。
答案 4 :(得分:2)
我的第一直觉:
perl -lne 'if ($. % 2) { $last = $_; } else { print "$last $_" }'
受@ kev的sed解决方案启发的更简洁的版本:
perl -lpe '$_ .= " " . <>; chomp'
但我认为sed赢了这一轮。
答案 5 :(得分:2)
awk '{getline a; printf "%-s\n", $0 " " a}' file