У меня есть два текстовых файла с различным количеством столбцов в них, и я хочу сравнить значения данного столбца в file1.txt со значениями данного столбца в file2.txt: если эти значения найдены в file2.txt, то скопируйте соответствующее значение в определенном столбце из file2.txt и вставьте его в новый столбец в file1.txt. Если соответствующее значение не найдено в file2.txt, вернуть FALSE для этой строки в file1.txt
Чтобы было легче следовать, у меня есть следующий пример:
Скажи, у меня есть file1.txt
Query No. Accession Name DB
EFX03602.1 1006 PHI:1006 HMR1 Not_Available
EFX00827.1 101 PHI:101 ALB1 AAC39471
EFX01509.1 101 PHI:101 ALB1 AAC39471
EFX05810.1 1010 PHI:1010 SID1 XM_385547
EFX00466.1 1026 PHI:1026 bcplc1 AAB39564
И file2.txt
Accession DB_Type DB_Accession Function
PHI:1006 Uniprot I1RXX1 HMG-CoA Reductase
PHI:101 Entrez AAC39471 Polyketide synthase
PHI:7 Entrez CAA42824 Effector protein
PHI:1026 Entrez AAB39564 Phospholipase C
PHI:1028 Entrez CAC29255 pectin methylesterase
PHI:1030 Entrez CAA93142 ABC Transporter
PHI:17 Entrez CAA43678 Acid proteinase
Я хочу сравнить столбец Accession (столбец 3) файла file1.txt со столбцом Accession (столбец 1) в файле file2.txt и, если значения находятся в file2.txt, скопировать соответствующие значения в столбец Function (столбец 4). ) файла file2.txt и вставьте новый столбец в файл file1.txt. В конце я хочу, чтобы результирующий файл выглядел так (не важно, где находится новый столбец вставки, он может находиться где угодно в файле):
Query No. Accession Function Name DB
EFX03602.1 1006 PHI:1006 HMG-CoA Reductase HMR1 Not_Available
EFX00827.1 101 PHI:101 Polyketide synthase ALB1 AAC39471
EFX01509.1 101 PHI:101 Polyketide synthase ALB1 AAC39471
EFX05810.1 1010 PHI:1010 FALSE SID1 XM_385547
EFX00466.1 1026 PHI:1026 Phospholipase C bcplc1 AAB39564
Могу ли я сделать это с помощью некоторых команд оболочки или мне понадобится скрипт?
Заранее спасибо за помощь.