我有两个文件
文件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