processamento de texto

0

Eu tenho dois arquivos.

arquivo A:

       Chr1     Cufflinks     exon    2903   3268   .   +   .   gene_id "XLOC_000001"; transcript_id "TCONS_00000002"; exon_number "1"; oId "CUFF.1.2"; tss_id "TSS1";

       Chr1     Cufflinks     exon    3354   3616   .   +   .   gene_id "XLOC_000001"; transcript_id "TCONS_00000002"; exon_number "2"; oId "CUFF.1.2"; tss_id "TSS1";

       Chr1     Cufflinks     exon    4357   4455   .   +   .   gene_id "XLOC_000001"; transcript_id "TCONS_00000761"; exon_number "3"; oId "CUFF.1.2"; tss_id "TSS1";

arquivo B;

TCONS_00000066
TCONS_00000600
TCONS_00000761
TCONS_00000762
TCONS_00000773

Quero corresponder o arquivo B e imprimir onde houver correspondência. Nesse caso, o id no arquivo A está na 12ª coluna.

a saída deve ser como

    Chr1    Cufflinks   exon    4357    4455    .   +   .   gene_id "XLOC_000001"; transcript_id "TCONS_00000761"; exon_number "3"; oId "CUFF.1.2"; tss_id "TSS1";

toda a linha do arquivo A deve estar no arquivo C

Eu tentei comandos do awk, mas falhei.

awk 'FNR==NR {a[$12];next}; !($12 in a)' B A >C

Por favor ajude.

    
por user106326 07.04.2015 / 14:26

1 resposta

3
grep -fB A

fará o que você está procurando; a opção -f especifica um arquivo do qual os padrões são carregados, um padrão por linha. Qualquer linha em A que corresponda a um padrão em B será produzida.

    
por 07.04.2015 / 14:32