Извлечение строк из ключей из файла

У меня большой файл с примерно 15 миллионами строк. Нечетные строки содержат ключи (но не только ключи), а четные – данные. То есть, файл выглядит примерно так:

WRTZ Tyrosine 1287998798 ASDF Proline 9408654860 TYSR Serine 9809804090 ASDF Cytosine 4950409808 

Ключами здесь являются ASDF , TYSR и WRTZ .

У меня есть список около 100000 ключей. Я хочу извлечь данные (обе строки), соответствующие этим клавишам.

Один из моих подходов заключался в том, чтобы grep строки, содержащие ключи, чтобы получить номера строк, а затем извлечь строку и следующую строку, используя head и tail в цикле. Однако для этого, похоже, требуется много времени.

Есть ли более эффективный способ сделать это?

  • Как вставить текст после определенной строки в файл?
  • Как переформатировать табличные данные с помощью AWK?
  • Как удалить конечную новую строку в bash?
  • строки обработки текста столбцам для блока
  • Как я могу сопоставить строку, когда ей не предшествует цифра с помощью awk?
  • Захват текста между фигурными фигурными скобками в предварительно обработанном файле C
  • Как слить текст буквенных строк с числовыми строками в оболочке?
  • Перечисленная частота различных строк в отдельной колонке
  • One Solution collect form web for “Извлечение строк из ключей из файла”

    Если нет изменений четных и нечетных линий. Затем попробуйте использовать команду ниже

    awk 'NR%2{printf $1"-";next;}1' <Filename>

    Вывод указанной команды будет

    WRTZ-1287998798

    ASDF-9408654860

    TYSR-9809804090

    ASDF-4950409808

    Interesting Posts

    Список аргументов слишком длинный для ls

    Монетный двор 18.1 Проводная сеть не работает

    Чрезмерное использование ЦП во время работы Facebook и нескольких других сайтов

    timestamping history file вызывает ошибочные строки в команде history

    Как просматривать веб-сайт, как если бы я был в США?

    На Linux Mint 18, как я могу обновить WINE до 1.9.x?

    Включение подпараметров в варианты справки для правильного выполнения без getopt или getopts?

    Круговой журнал в linux

    Определение частоты обновления 60 Гц на мониторе 4K с помощью xrandr

    Создать раздел на сервере CentOS?

    Как сравнить число с плавающей запятой в сценарии оболочки

    удалять дубликаты на основе значения другого столбца

    Индивидуальные рабочие письма и подписи с каждой фирмой, возможно, с Mutt и Procmail для просмотра Professional?

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

    vimdiff для сравнения вывода вместо файлов

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