タイトルに加えて、他のファイルに基づいてテキストファイルを並べ替える

タイトルに加えて、他のファイルに基づいてテキストファイルを並べ替える

最初と2番目の列は個人IDで、残りは遺伝子型情報であるファイルがあります。各個人に2つの行があることに注意する必要があります。ファイルにはヘッダー行がありますが、個々のIDの最初と2番目の列ではなく、遺伝子型列にのみ適用されます。

        SNP_1 SNP_2 SNP_3 SNP_4 SNP_5
2014TOR010  1   3 1 4 4 3 3 2 3 1
2014TOR010  1   1 1 2 4 3 3 2 4 1 
06SELI0115  1   3 1 4 4 3 3 2 3 1  
06SELI0115  1   3 1 2 4 3 2 2 3 2
2014TOR011  1   3 1 4 4 3 3 2 3 1 
2014TOR011  1   1 1 2 4 1 3 2 4 2 
....

このファイルを他のファイルに基づいてソートしたいと思います。

head sorted.snps.txt
2014TOR011
06SELI0115
2014TOR010

だがタイトルは維持したい。これが私が望む出力です:head out.desired

      SNP_1 SNP_2 SNP_3 SNP_4 SNP_5
2014TOR011  1   3 1 4 4 3 3 2 3 1 
2014TOR011  1   1 1 2 4 1 3 2 4 2
06SELI0115  1   3 1 4 4 3 3 2 3 1  
06SELI0115  1   3 1 2 4 3 2 2 3 2
2014TOR010  1   3 1 4 4 3 3 2 3 1
2014TOR010  1   1 1 2 4 3 3 2 4 1 
....

ベストアンサー1

テストされていません:

awk '
NR==1 { print; next }
NR==FNR { a[$1]=($1 in a ? a[$1] ORS : "") $0; next }
{ print a[$1] }
' file1 sorted.snps.txt

おすすめ記事