2つのファイルがあります
File1
_03873
03872
03871
03870
......
_
File2
_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
_が持つ要素の順序を維持しながら、_File 1
_の_File 1
_のII列に値を追加します。
File3
_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
_
しかし、この場合もデータをソートします。それを行う方法はありますか?
awk
はソートされていません。出力は、file2
にある順序で出力され、thatがソートされます。 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