Seu awk
não está classificando. A saída é impressa na ordem em que é encontrada em file2
e que é classificada. Para manter o pedido encontrado em file1
, basta invertê-lo (eu também removi o a[$1]"\t"$2
desnecessário, você já estava salvando $0
em 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