根据除标题之外的另一个文件对文本文件进行排序

根据除标题之外的另一个文件对文本文件进行排序

我有一个文件,其中第一列和第二列是个体 ID,其余是基因型信息(我应该提到每个个体有两行)。该文件有标题行,但仅针对基因型列,而不是针对个体 ID 的第一列和第二列)。

        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

相关内容