使用awk中的关键字段转置文件

transpose a file using a key field in awk

我想使用 awk 将文件转置到组字段上。谢谢

我有一个这样的文件。

id  Name    Value

1 B1 0.1

1 B2 0.3

1 B3 0.4

2 B1 0.2

2 B2 0.09

2 B3 0.10

我想要这样的文件:

   B1 B2 B3
 1 0.1 0.3 0.4
 2 0.2 0.09 0.10
$ cat tst.awk
BEGIN { OFS="\t" }
NR==1 { next }
(prev != "") && ( != prev) {
    if (++nr == 1) {
        print hdr
        rec = prev rec
    }
    print rec
    hdr = ""
    rec = 
}
{
    hdr = hdr OFS 
    rec = rec OFS 
    prev = 
}
END { print rec }

$ awk -f tst.awk file
        B1      B2      B3
1       0.1     0.3     0.4
2       0.2     0.09    0.10