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

У меня есть два файла, из которых мне нужно извлечь вещи. Первый файл содержит штрих-код и заканчивается номером OTU. Мне нужно извлечь строки с конкретными номерами OTU.

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

Например, допустим, я хочу извлечь все строки, содержащие OTU_1 из этого файла введите описание изображения здесь

Существуют уникальные штрих-коды, связанные с каждой строкой, содержащей OTU 1, в этом примере показано 5:

907.2::M02542:207:000000000-AWDAH:1:1115:18838:201661:N:0:GTGAAA 905.2::M02542:207:000000000-AWDAH:1:1101:24324:103291:N:0:GTGAAA 1205.2::M02542:207:000000000-AWDAH:1:2115:22195:238121:N:0:GTGAAA 906.2::M02542:207:000000000-AWDAH:1:1115:24086:126561:N:0:GTGAAA 910.2::M02542:207:000000000-AWDAH:1:1112:26236:215801:N:0:GTGAAA 

Мне нужно будет использовать эти штрих-коды для извлечения последовательностей из следующего файла:

введите описание изображения здесь

Как вы можете видеть, штрих-коды начинаются после>, и мне понадобится вся информация между> (то есть моими последовательностями).

Я пробовал очевидную вещь, которая должна была бы использовать тип таблицы электронной таблицы и сортировать по OTU #, но мои файлы слишком большие (~ несколько миллиардов строк).

One Solution collect form web for “Извлечь строки, которые имеют конкретное окончание, и использовать их для извлечения из другого файла”

С GNU grep что-то вроде этого должно работать:

 grep -o '\S\+\s\+OTU_1$' Fasta.readmap.uc | \ grep -o '^\S\+' | \ grep -f - -A 1 092016MABits-pr.fasta | \ grep -v '^>' 

-o делает grep выводит только соответствующий текст. -f - сообщает grep чтобы искать шаблоны, отправленные из STDIN . -A 1 сообщает grep чтобы показать строку после матча. Последний grep только строкам, которые не относятся к « > ».

  • Как выводить несколько строк с использованием одного условия?
  • Команда UNIX для замены в разделителе в зависимости от положения разделителя
  • добавьте несколько строк в начале и в нижней части строки, поступающей из файла read
  • Sed: изменить каждое повторение не первого слова для каждого слова в тексте
  • Заменить значения в столбце, содержащем числа
  • Разделить файл на основе требуемой строки
  • Как использовать sed для замены чисел с помощью parenthese?
  • используя цикл «for», непрерывно читает строку строки за строкой, рассматривая каждую строку как входной
  • Эффективная фильтрация многих файлов по их содержимому с помощью awk / sed / grep
  • Удалить поля, содержащие определенную строку
  • сортировать файл по длине столбца / строки
  • Использование номеров в файле A для получения уникального идентификатора из файла B на основе порядка, указанного в файле A
  • Linux и Unix - лучшая ОС в мире.