2013-09-26 3 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 

Большое спасибо заранее всем, кто может помочь.

Лука

ответ

0

Вот один из способов сделать это с простака. Выглядит больно, я уверен, что есть лучшие способы сделать это, но 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 
Смежные вопросы