2013-09-26 34 views
0

我想轉置和取消一個巨大的文本數據庫(製表符分隔)。移調和拆除

我的數據看起來是這樣的:

rs1 5 AB 
rs2 5 BB 
rs3 5 AA 
rs1 6 BB 
rs2 6 AA 
rs3 6 AB 
rs1 7 AA 
rs2 7 AB 
rs3 7 BB 

我想將它變成:

rs1 rs2 rs3 

5 AB BB AA 
6 BB AA AB 
7 AA AB BB 

很多感謝的人誰可以提供幫助。

Luca

回答

0

下面介紹一種使用gawk的方法。看起來很痛苦,我確信有這樣做的更好的方法,但FWIW

awk -F'\t' 'BEGIN{PROCINFO["sorted_in"] = "@ind_str_asc"}; 
{arr[$1, $2] = $3; arr1[$1]; arr2[$2]}; 
END{ 
for(x in arr1){printf " "x;} {print ""}; 
for(y in arr2){printf y" ";for(x in arr1) printf " "arr[x, y]; print ""} 
    }' input_file