Я знаю, что были заданы похожие вопросы, которые побудили меня написать текущий код, но я все еще не могу получить правильный вывод. Вопрос: Если столбец 1 (в файле 1) соответствует столбцу 5 (в файле 2), выведите все столбцы в файле 2 и столбцы 3 и 4 (в файле 1) в новый файл.
Файл 1 (вкладка -delimited)
NJE_00001 rmf 6.2 Ribosome modulation factor
NJE_00002 rlm 7.1 Ribosomal RNA large subunit methyltransferase
NJE_00003 gnt 6.2 putative D-xylose utilization operon
NJE_00004 prp 4.1 2-methylisocitrate lyase
Файл 2 (с разделителями табуляции)
AFC_04390 rmf 5.6 protein1 NJE_00001
AFC_04391 rlm 2.5 protein54 NJE_00002
AFC_04392 gnt 2.1 protein8 NJE_00003
AFC_04393 prp 4.1 protein5 NJE_00004
Желаемый вывод (с разделителями табуляции)
AFC_04390 rmf 5.6 protein1 NJE_00001 6.2 Ribosome modulation factor
AFC_04391 rlm 2.5 protein54 NJE_00002 7.1 Ribosomal RNA large subunit methyltransferase
AFC_04392 gnt 2.1 protein8 NJE_00003 6.2 putative D-xylose utilization operon
AFC_04393 prp 4.1 protein5 NJE_00004 5.9 2-methylisocitrate lyase
Что я пробовал:
awk -F '\t' 'NR==FNR {a[$1]=$3"\t"$4; next} ($5 in a) {print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5 "\t" a[$1]}' file1.tsv file2.tsv > file.out
awk -F '\t' 'NR==FNR {a[$1]=$2; next} {if ($5 in a) {print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5 "\t" a[$1]}}' file1.tsv file2.tsv > file.out
awk -F '\t' 'NR==FNR {h[$1]=$3"\t"$4; next} ($5 in h) {print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5 "\t" h[$1]}' file1.tsv file2.tsv > file.out
Все они выдали одинаковые результаты, идентичные файлу 2. Любая помощь будет принята с благодарностью! Спасибо!