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

У меня есть два файла, из которых мне нужно извлечь вещи. Первый файл содержит штрих-код и заканчивается номером 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 #, но мои файлы слишком большие (~ несколько миллиардов строк).

  • Какая версия sed не является GNU sed 4.0?
  • Как скриптировать эту функцию массового переименования?
  • Удалить столбец из CSV
  • Поиск и замена имени пути в Linux с помощью sed
  • Существует ли `sed` во всех * nixes?
  • Как я могу поменять порядок каждой пары символов в строке?
  • Подсчет последовательных повторений определенного символа (например,)
  • Удаление прокомментированных строк в текстовом файле с помощью sed
  • 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 только строкам, которые не относятся к « > ».

    Linux и Unix - лучшая ОС в мире.