使用awk移动数组元素

时间:2016-10-14 11:01:07

标签: arrays sorting awk

我有一个数据文件,如下所示:

1 4.2
1 5.6
1 3.3
.
.
1 5.3
2 1.4
2 3.2
2 7.2
.
.
.
2 6.6
.
.
.
100 4.1
100 5.8
100 8.8
.
.
.
100 7.7

第一列中每个不同的值有100行,即我有10000行,有两列。我需要以这样的方式重新排列元素:

1 4.2 5.6 3.3 ... 5.3
2 1.4 3.2 7.2 ... 6.6
.
.
.
100 4.1 5.8 8.8 ... 7.7

也就是说,我需要一个100x101阵列。我正在考虑使用awk,但我被卡住了。有什么想法吗?

伊戈尔

1 个答案:

答案 0 :(得分:1)

awk可以提供帮助:

awk '{a[$1]=a[$1] " " $2} END{for(i in a) print i a[i]}' file

数组a填充每行的第二个参数,并由第一个参数索引。读取文件时,awk输出数组的内容。