将大型单列拆分为两列

时间:2014-04-10 19:07:13

标签: awk split

我需要将大文件中的单列数据拆分为两列,如下所示:

A
B           B A
C    ---->  D C
D           F E
E           H G
F
G
H

使用unix shell命令和/或小shell脚本有一种简单的方法吗? AWK?

3 个答案:

答案 0 :(得分:3)

您可以使用以下awk脚本:

awk 'NR % 2 != 0 {cache=$0}; NR % 2 == 0 {print $0 cache}' data.txt

输出:

BA
DC
FE
HG

它缓存奇数行的值并输出偶数行+将缓存附加到它们。

答案 1 :(得分:3)

$ awk 'NR%2{s=$0;next} {print $0,s}' file
B A
D C
F E
H G

答案 2 :(得分:0)

我知道这被标记为awk,但我无法阻止自己发布sed解决方案,因为问题是“简单的方式......使用unix shell命令” :

$ sed -n 'h;n;G;s/\n/ /g;p' data.txt
B A
D C
F E
H G