将所有其他行与下一行连接起来

时间:2012-01-24 13:02:16

标签: shell sed

在文本文档中,我希望每隔一行连接下一行。我猜sed是用的东西?怎么会这样做?

5 个答案:

答案 0 :(得分:24)

使用paste最简单:

paste -s -d' \n' input.txt 

虽然有一个Famous Sed One-Liner(38)可以像potong's answer一样模仿它。

答案 1 :(得分:21)

除非你真的坚持认为它需要sed,否则只需通过

paste -d" " - -

答案 2 :(得分:11)

这可能对您有用:

seq 10 | sed '$!N;s/\n/ /'
1 2
3 4
5 6
7 8
9 10

如果不是最后一行,请将以下行附加到当前行,并用空格替换换行符。

答案 3 :(得分:2)

简单awk解决方案:

awk '{getline b;printf("%s %s\n",$0,b)}' file

测试:

[jaypal:~/Temp] seq 11 > file
[jaypal:~/Temp] awk '{getline b;printf("%s %s\n",$0,b)}' file
1 2
3 4
5 6
7 8
9 10
11 

答案 4 :(得分:1)

“在文本文档中”是什么意思?如果您使用vim编辑文件,则可以执行以下操作:

:g/./normal J