Shell 使用linux命令(awk)将长文件转换为宽文件
我有一个长文件,我需要一个宽文件,我知道在R中这样做,但我想使用Linux,因为它更快。字段分隔符为tab 输入文件Shell 使用linux命令(awk)将长文件转换为宽文件,shell,awk,Shell,Awk,我有一个长文件,我需要一个宽文件,我知道在R中这样做,但我想使用Linux,因为它更快。字段分隔符为tab 输入文件 1 C C 1 G G 1 C G 2 G G 2 C C 2 C G 3 G G 3 C C 3 C C 输出文件: 1 2 3 CC GG GG GG GG CC CG CG CC 谢谢你营救我 假设数据一致(每个键的元素数相同) $awk'{k[$1];a[$1,++c[
1 C C
1 G G
1 C G
2 G G
2 C C
2 C G
3 G G
3 C C
3 C C
输出文件:
1 2 3
CC GG GG
GG GG CC
CG CG CC
谢谢你营救我 假设数据一致(每个键的元素数相同)
$awk'{k[$1];a[$1,++c[$1]]=$2$3}
结束{对于(x in k)printf“%s”,x of s;
打印“”;
为了(i=1;iawk
救援
假设数据一致(每个键的元素数相同)
$awk'{k[$1];a[$1,++c[$1]]=$2$3}
结束{对于(x in k)printf“%s”,x of s;
打印“”;
对于(i=1;i
$ awk '{k[$1]; a[$1,++c[$1]]=$2$3}
END{for(x in k) printf "%s",x OFS;
print "";
for(i=1;i<=c[$1];i++)
{for(x in k) printf "%s", a[x,i] OFS;
print ""}}' file
1 2 3
CC GG GG
GG CC CC
CG CG CC