合并两个文件,保持其中一个文件的元素顺序

合并两个文件,保持其中一个文件的元素顺序

我有两个文件

文件1

03873
03872
03871
03870
......

文件2

00001    0.867
00002    0.855
00003    0.864
00004    0.855
...
03870    0.825
03871    0.852
03872    0.326
03873    0.852

File 2我想附加中的 II 列中的值File 1,并保持元素的顺序File 1

文件3

03873    0.852
03872    0.326
03871    0.852
03870    0.825
......

我可以用 来做这个join,但我不想排序File 1。我想用awk

awk -F "\t" 'FNR==NR{a[$1]=$0; next}$1 in a {print a[$1]"\t"$2}' File1  File2 

但在这种情况下,我也对数据进行了排序。有什么想法吗?

答案1

awk没有排序。输出按找到的顺序打印,file2并且已排序。若要保持在 中找到的顺序file1,只需将其反转(我还删除了a[$1]"\t"$2您已$0在 中保存的不必要的a):

$ awk -F "\t" 'FNR==NR{a[$1]=$0; next}$1 in a {print a[$1]}' file2 file1 
03873   0.852   
03872   0.326   
03871   0.852   
03870   0.825   

相关内容