извлечение строк из большого файла с разделителями табуляции с помощью списка

извлечение строк из большого файла с разделителями табуляции с помощью списка

У меня есть большой файл tab с 15 столбцами (FILE1) и список (FILE2) имен, которые должны появиться в таблице. Проблема в том, что имя может появиться в столбцах с 4 по 10 в FILE1, и это может не совпадать с регистром.

Мне нужна команда, которая ищет строку для совпадения, а затем печатает всю строку. Предпочтительно, чтобы это не было чувствительно к регистру и не печатало строки, где имена в FILE2 являются частью большего слова.

Я попробовал следующее:

grep -Fwf FILE2 FILE1 > out 
xargs -I {} grep "^{}" FILE1 < FILE2 > out 

Первый просто копирует FILE1 в out. Второй выдает пустой файл out.

Я также попробовал несколько awkкоманд, которые либо дадут пустой выходной файл, либо, как указано выше, скопируют FILE1. В данный момент я пытаюсь улучшить свои навыки работы с Linux, поэтому, если возможно, если вы объясните свой метод, я буду очень признателен.

Файл1

tax_id GeneID  Symbol  LocusTag        Synonyms        dbXrefs chromosome      map_location    description     type_of_gene    Symbol_from_nomenclature_authority      Full_name_from_nomenclature_authority Nomenclature_status      Other_designations      Modification_date
7       5692769 NEWENTRY        -       -       -       -       -       Record to support submission of GeneRIFs for a gene not in Gene (Azotirhizobium caulinodans.  Use when strain, subtype, isolate, etc. is unspecified, or when different from all specified ones in Gene.).     other   -       -       -       -       20160818
9       1246500 repA1   pLeuDn_01       -       -       -       -       putative replication-associated protein protein-coding  -       -       -       -       20160813
9       1246501 repA2   pLeuDn_03       -       -       -       -       putative replication-associated protein protein-coding  -       -       -       -       20160716
9       1246502 leuA    pLeuDn_04       -       -       -       -       2-isopropylmalate synthase      protein-coding  -       -       -       -       20160903
9       1246503 leuB    pLeuDn_05       -       -       -       -       3-isopropylmalate dehydrogenase protein-coding  -       -       -       -       20150520
9       1246504 leuC    pLeuDn_06       -       -       -       -       isopropylmalate isomerase large subunit protein-coding  -       -       -       -       20160806
9       1246505 leuD    pLeuDn_07       -       -       -       -       isopropylmalate isomerase small subunit protein-coding  -       -       -       -       20160730
9       1246509 ibp     pBPS1_01        -       -       -       -       Ibp protein     protein-coding  -       -       -       -       20150801
9       1246510 repA1   pBPS1_02        -       -       -       -       repA1 protein   protein-coding  -       -       -       -       20160813

Файл2

sacX
arcB
metB
sprT
adrB_2
fadD
trpC
ansP2
group_1428
plsX
repA

решение1

Ответ в комментариях выше см. ответы @Philippos и @George Vasiliou

Коротко ответ таков: grep -Fwf FILE2 FILE1 > out

У меня была проблема, когда я выполнил команду, она копировала FILE1. Это происходило из-за конечных пустых строк в FILE2. Когда я их удалил, команда работала отлично.

Поскольку часть текста в моих файлах может не совпадать по регистру, я включил -i в команду выше.

Спасибо всем, кто помог.

Связанный контент