Outra coisa: Na maioria dos casos a expressão

cat arquivo | comando --que --pega -a --saida -e --processa

Pode ser substituído por um comando --que --pega -a --saida -e 
--processa < arquivo

Isso pq o comando neste caso lê da entrada padrão, que pode ser um 
arquivo mesmo, ou a saída de um comando. No seu caso, trata-se de um 
arquivo, e o cat está ali só pra diminuir a eficiência do algoritmo.

E laços for são um pé no saco mesmo :-) É realmente chato quando vc 
descobre a diferença entre um algoritmo O(lg 2) para um O(n2) :-)

Guilherme Andrade wrote:
>
> Olá pessoal, estou com um problema para resolver, tenho 2 arquivos, com o
> seguinte conteúdo:
>
> $ cat arquivo1
>
> 1234
>
> 2345
>
> 2333
>
> 4444
>
> 4545
>
> Segundo arquivo
>
> $cat arquivo2
>
> 2345 texto teste
>
> 2333 mais um teste
>
> 423342342 outo teste
>
> 342343423 mais um teste
>
> O que eu quero é pegar a linha do arquivo 2 que que contenha o codigo do
> arquivo 1.
>
> Eu fiz um script que esta funcionando, porém como meus arquivos são 
> enormes,
> esta demorando muito, então com a ajuda da lista queria saber se tem algum
> outro algoritmo mais eficiente que este que eu fiz.
>
> #!/bin/bash
>
> for i in `cat arquivo1`; do
>
> cat arquivo2 | grep $i >> arquivo3;
>
> done;
>
> com isso irá gerar o arquivo3 com a seguinte saída:
>
> $cat arquivo3
>
> 2345 texto teste
>
> 2333 mais um teste
>
> Obrigado desde já quem puder me ajudar.
> *Att,
>
> Guilherme Andrade*
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 



------------------------------------

---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [email protected]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [email protected]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a