У меня есть два файла
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
Я хочу добавить значения в II столбцах File 2
в File 1
, хранение порядка элемента это File 1
имеет.
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
и это отсортировано. Сохранять порядок найденным в 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