Dica de script para localizar varios termos ao mesmo tempo em um arquivo grande. [RESOLVIDO]

1. Dica de script para localizar varios termos ao mesmo tempo em um arquivo grande. [RESOLVIDO]

priscilla
prihleao

(usa Outra)

Enviado em 19/01/2016 - 11:27h

Ola, pessoal!
Digamos que:
tenho um arquivo1 com termos diferentes :
7358_g1_i1
7567_g1_i1
7673_g1_i1
8173_g1_i1
8174_g1_i1
8201_g1_i1
8271_g1_i1


Tenho um outro arquivo2 com mais de 70 000 termos sendo que, nesse arquivo, os termos estao dispostos da seguinte forma
>8255_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG
>8255_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG
>8266_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG
>8277_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG

e assim vai.. com 70 000 termos onde as informacoes relacionadas aquele termo sao precedidas dele e de >.

Gostaria de uma dica pra fazer um script p achar os termos do arquivo 1 no arquivo 2 e imprimir com as informacoes de cada termo.


valeu




  


2. MELHOR RESPOSTA

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 20/01/2016 - 16:25h

Olá,

Acho que assim róla:

sed '/^>/ s/^/\n/g' arquivo2 > tratado.txt
for i in $(cat arquivo1); do sed -rn "/$i/,/^$/p" tratado.txt;done

Caso precise que além de imprimir na tela, salve em um arquivo:
sed '/^>/ s/^/\n/g' arquivo2 > tratado.txt
for i in $(cat arquivo1); do sed -rn "/$i/,/^$/p" tratado.txt;done | tee final.txt


Assim ele alem de imprimir na tela e salvar o resultado no arquivo final.txt

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---

3. RES: Dica de script para localizar varios termos ao mesmo tempo em um arquivo grande.

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 19/01/2016 - 11:42h

Olá,
deixa eu ver se entendi você tem um arquivo com esse texto
>8255_g1_i1

e você quer localizar esse texto em outro arquivo mas quer localizar somente o 8255_g1_i1

sem o
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG

seria isso meu jovem?


---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---


4. Re: Dica de script para localizar varios termos ao mesmo tempo em um arquivo grande.

priscilla
prihleao

(usa Outra)

Enviado em 19/01/2016 - 11:49h

eu queria, por exemplo,
localizar o 8255_g1_i1 que esta no arquivo 1, no arquivo2
e fazer imprimir em outro arquivo desse jeito
>8255_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG

Por exemplo:
arquivo1
8255_g1_i1
8277_g1_i1

arquivo2
>8254_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG
>8255_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG
>8266_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG
>8277_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG

arquivo3 - resultado
>8255_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG
>8277_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG



5. Re: Dica de script para localizar varios termos ao mesmo tempo em um arquivo grande. [RESOLVIDO]

priscilla
prihleao

(usa Outra)

Enviado em 19/01/2016 - 12:02h

pensei em algo assim sei la

cat arquivo1 | while read line
do
grep arquivo2 >> arquivo3
done


tipo alguma coisa desse tipo..to tentando pensar ...
nao sei se tem alguma coisa a ver


6. RES: Dica de script para localizar varios termos ao mesmo tempo em um arquivo grande.

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 19/01/2016 - 12:39h

Olá,
a principio se você fizer assim vai conseguir comparar uma lista com a outra

#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

lis=$(cat /home/arquivo1.txt | awk -F " " '{print "" $1 }' )

for i in $lis
do

line_num=$(grep -n $i /home/arquivo2.txt | awk -F " " '{print "" $1 }')

só que agora precisava de uma função com seed ou grep para localizar a linha e gerar o arquivo3 com o resultado.



---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---


7. Re: Dica de script para localizar varios termos ao mesmo tempo em um arquivo grande. [RESOLVIDO]

priscilla
prihleao

(usa Outra)

Enviado em 19/01/2016 - 16:28h

Beleza.. Brigada... Vou tentar e dou um retorno


8. Re: Dica de script para localizar varios termos ao mesmo tempo em um arquivo grande.

priscilla
prihleao

(usa Outra)

Enviado em 20/01/2016 - 13:42h

pessoal.. com esse script eu consegui comparar.. mas, ele imprime so a primeira linha e nao imprime a segunda

script


cat arquivo1 | while read line
do
grep $line arquivo2 >> arquivo3
done



dai por exemplo:
arquivo1
8255_g1_i1
8277_g1_i1

arquivo2
>8254_g1_i1 GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG
>8255_g1_i1 GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG
>8266_g1_i1 GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG
>8277_g1_i1 GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG

arquivo3 - resultado que da com esse script
>8255_g1_i1GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
>8277_g1_i1GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT

e eu queria que ele falasse de tudo que se refere ao id que localizei...ele so fala da primeira linha...
queria que ficasse assim
>8255_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG
>8277_g1_i1
GTAGTAGATGATGATAGTATAGATATGTAGATGATGATAGTAGTAGATGATGAT
TAGTAGTAGATGATGATAGTAG

eu teria que falar pro trem imprimir do > ate a ultima letra da sequenciia que eu preciso... independente do numero de linhas q seja


9. Re: Dica de script para localizar varios termos ao mesmo tempo em um arquivo grande. [RESOLVIDO]

priscilla
prihleao

(usa Outra)

Enviado em 21/01/2016 - 11:07h

Deu certinho!!! Aprendi agora!!!
Muitissimo obrigada!!!!
Abs




10. Re: Dica de script para localizar varios termos ao mesmo tempo em um arquivo grande. [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 21/01/2016 - 14:12h

Noix!

Não esqueça de ajudar os brothers aqui do fórum, quando souber responder.

Abração.
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


11. Re: Dica de script para localizar varios termos ao mesmo tempo em um arquivo grande. [RESOLVIDO]

priscilla
prihleao

(usa Outra)

Enviado em 21/01/2016 - 14:21h

Bacana!! Pode deixar! Obrigada pela forca mesmo!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts