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

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

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

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

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

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

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

File1

 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 

File2

 sacX arcB metB sprT adrB_2 fadD trpC ansP2 group_1428 plsX repA 

One Solution collect form web for “извлекать строки из большого файла с разделителями табуляции, используя список”

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

Вкратце ответ grep -Fwf FILE2 FILE1 > out

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

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

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

  • Сохраните первый столбец в файл, чье имя задано вторым столбцом
  • Как grep текст рекурсивно на BusyBox 1.0?
  • выражение поиска grep и файл переименования
  • получить все строки, имеющие значение столбца, большее порога
  • Как grep точное слово с пробелом только как разделитель слов
  • Обратный grep, чтобы получить последние пару вхождений в файл
  • Как я могу выполнить двоичный поиск текстового файла для определенной строки символов?
  • В bash, grep для строки, начинающейся с \, и присваивания результата с помощью обратных шагов
  • В чем смысл (^ |) ABC (| $) как расширенного REGEX?
  • Каждый результат grep для разных файлов
  • Проверка скрипта выполняется
  • Linux и Unix - лучшая ОС в мире.