A lentidao se da pelo fato de vc executar 65347856392 vezes o comando awk. Vc pode fazer esta busca de varias formas, por exemplo vc pode ler 2 arquivos, colocar o primeiro em um array, etc.
Uma forma de agilizar seria assim: grep -f 'arquivo01.txt' arquivo02.txt que encontra cada linha de arquivo01 no arquivo02 -- depois bastaria filtrar quem não entra no que é esperado. On 6/10/10, M. Rodrigo Monteiro <[email protected]> wrote: > Pessoal, > > Tenho o seguinte script. > Gostaria de saber algum modo de deixá-lo mais rápido na execução. > > #!/bin/bash > > while read linha ; do > awk -v T="${linha}" '{ if (substr($0,61,11) == T) { print ; } }' > arquivo02.txt > done < arquivo01.txt > > > Sugestões? > > Acho que ficaria mais rápido substituindo o while, e achando algum > modo de quando ele achar a primeira ocorrência do IF no AWK, ele parar > e ir para o próximo registro (como se fosse o continue dentro de um > laço). > > > Abraços, > Rodrigo. > > > -- > M. Rodrigo Monteiro > [email protected] > "Free as in Freedom, not free as in free beer" > "As we are liberated from our own fear, our presence automatically > liberates others" > Linux User # 403730 > -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br
