Extraindo linhas ao redor de chaves de um arquivo

2

Eu tenho um arquivo grande com cerca de 15 milhões de linhas. As linhas ímpares contém as chaves (mas não apenas as chaves) e as linhas pares são os dados. Ou seja, o arquivo é algo como:

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

As chaves aqui são ASDF , TYSR e WRTZ .

Eu tenho uma lista com cerca de 100.000 chaves. Eu quero extrair os dados (ambas as linhas) correspondentes a essas chaves.

Uma abordagem que tentei foi grep das linhas contendo as chaves para obter os números de linha e depois extrair a linha e a próxima linha usando head e tail em um loop. No entanto, isso parece levar muito tempo para ser executado.

Existe uma maneira mais eficiente de fazer isso?

    
por Devil 03.07.2014 / 00:08

1 resposta

1

Se não houver alteração nas linhas pares e ímpares. Então, por favor, tente usar o comando abaixo

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

A saída do comando acima será

WRTZ-1287998798

ASDF-9408654860

TYSR-9809804090

ASDF-4950409808

    
por 04.07.2014 / 12:29