Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 使用linux命令(awk)将长文件转换为宽文件_Shell_Awk - Fatal编程技术网

Shell 使用linux命令(awk)将长文件转换为宽文件

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[

我有一个长文件,我需要一个宽文件,我知道在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]]=$2$3}
结束{对于(x in k)printf“%s”,x of s;
打印“”;

为了(i=1;i
awk
救援

假设数据一致(每个键的元素数相同)

$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