extrai linhas do arquivo delimitado por tabulações grandes usando uma lista

1

Eu tenho um arquivo de tabulação grande com 15 colunas (FILE1) e uma lista (FILE2) de nomes que devem aparecer na tabela. O problema é que o nome pode aparecer nas colunas 4 a 10 no FILE1 e pode não ser uma correspondência de maiúsculas e minúsculas.

Eu quero um comando que procure por um hit e imprima a linha inteira. De preferência, isso não faria distinção entre maiúsculas e minúsculas e não imprimiria linhas em que os nomes em FILE2 fazem parte de uma palavra maior.

Eu tentei o seguinte:

grep -Fwf FILE2 FILE1 > out 
xargs -I {} grep "^{}" FILE1 < FILE2 > out 

o primeiro apenas copia FILE1 para fora. O segundo dá um arquivo em branco.

Eu também tentei alguns comandos awk que darão um arquivo vazio ou como acima da cópia FILE1. Estou tentando melhorar minhas habilidades no Linux no momento, então, se possível, se você explicar seu método, ficaria muito grato.

Arquivo1

tax_id GeneID  Symbol  LocusTag        Synonyms        dbXrefs chromosome      map_location    description     type_of_gene    Symbol_from_nomenclature_authority      Full_name_from_nomenclature_authority Nomenclature_status      Other_designations      Modification_date
7       5692769 NEWENTRY        -       -       -       -       -       Record to support submission of GeneRIFs for a gene not in Gene (Azotirhizobium caulinodans.  Use when strain, subtype, isolate, etc. is unspecified, or when different from all specified ones in Gene.).     other   -       -       -       -       20160818
9       1246500 repA1   pLeuDn_01       -       -       -       -       putative replication-associated protein protein-coding  -       -       -       -       20160813
9       1246501 repA2   pLeuDn_03       -       -       -       -       putative replication-associated protein protein-coding  -       -       -       -       20160716
9       1246502 leuA    pLeuDn_04       -       -       -       -       2-isopropylmalate synthase      protein-coding  -       -       -       -       20160903
9       1246503 leuB    pLeuDn_05       -       -       -       -       3-isopropylmalate dehydrogenase protein-coding  -       -       -       -       20150520
9       1246504 leuC    pLeuDn_06       -       -       -       -       isopropylmalate isomerase large subunit protein-coding  -       -       -       -       20160806
9       1246505 leuD    pLeuDn_07       -       -       -       -       isopropylmalate isomerase small subunit protein-coding  -       -       -       -       20160730
9       1246509 ibp     pBPS1_01        -       -       -       -       Ibp protein     protein-coding  -       -       -       -       20150801
9       1246510 repA1   pBPS1_02        -       -       -       -       repA1 protein   protein-coding  -       -       -       -       20160813

Arquivo2

sacX
arcB
metB
sprT
adrB_2
fadD
trpC
ansP2
group_1428
plsX
repA
    
por AudileF 27.04.2017 / 10:17

1 resposta

1

Responda nos comentários acima veja @Philippos e @George Vasiliou responde

Resumidamente, a resposta é grep -Fwf FILE2 FILE1 > out

Eu estava tendo um problema pelo qual eu executei o comando que copiaria FILE1. Isso estava ocorrendo devido a linhas em branco no FILE2. Quando eu os removi, o comando funcionou perfeitamente.

Como alguns dos meus textos nos arquivos podem não combinar com os casos, incluí -i no comando acima.

Obrigado a todos que ajudaram.

    
por 28.04.2017 / 10:25