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

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

  • Добавление макроса TeX в начало файла с помощью sed (почему мой метод не работает?)
  • Использование sed для вставки латексных команд вокруг заголовков документа
  • присоединяйте два файла на основе столбца, когда в сценарии bash нет взаимно однозначного соответствия (awk, grep, sed)
  • Быстрый способ удалить строку из чрезвычайно большого файла
  • Составляет ли sed запись в файл или дает образец вывода
  • Как печатать из разделителя полей ":" до конца строки?
  • sed insert в начале нескольких файлов не работает
  • Как создать имя файла для конвейера для удаления всех файлов?
  • 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 только строкам, которые не относятся к « > ».

    Interesting Posts

    Команда для вывода содержимого файла в stdout?

    Почему изменяется значение inode теневого файла?

    Меню правой кнопки мыши в Nemo отсутствует «создать ярлык» и «скопировать / переместить в»

    Любые другие дистрибутивы, такие как Ubuntu Software Center?

    Возможно ли установить KVM на виртуальную машину VMWare? Если да, каковы шаги?

    Исполняемый файл не отображается при запуске с помощью sudo

    Как установить Oracle Java7 в Ubuntu13.04

    форвардные и обратные символические ссылки: административная практика?

    Могу ли я заставить Linux загружать инициализацию параллельно?

    Почему системы становятся медленными при массивной записи на диск?

    Как вызвать jq внутри awk?

    Будет ли иметь десятки неактивных логинов ухудшить производительность

    Сплошное поведение сравнения со стороны Solaris

    Экран экспорта не работает на Ubuntu Gnome (gmd3)

    Поддержка Loop-устройства на самокомпилированном ядре не работает

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