shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Script lento...


From: Gustavo Chaves
Subject: Re: [shell-script] Script lento...
Date: 24 May 2005 10:04:22 -0300
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

>>>>> On Tue, 24 May 2005 09:41:26 -0300, "Luciano Depierri" <address@hidden> 
>>>>> said:

  > Pessoal, Estou rodando um script aqui mas está muito, muito, muito
  > lento, e para ajudar o meu arquivo tem nada menos do que 6450044
  > linhas.  Eu percebi que quanto menor o arquivo (menos linhas) o
  > output é mais rápido.

Quase caí da cadeira de tanto rir quando li esta frase.  Afinal, isto
não é o óbvio ululante?  :-)

Mas depois percebi que você estava provavelmente querendo dizer que à
medida que o script ia processando o arquivo ele ia ficando cada vez
mais lento, não é?

Bem, o problema é a forma como você está lendo o arquivo.  Pra cada
volta do loop você está chamando o sed pra ler a próxima linha, mas
ele tem que ler o arquivo inteiro procurando a linha em questão.
Deste modo você está chamando o sed uma vez pra cada linha do arquivo.

  >         until [ "$var" = "1" ]; do
  >              linha=`sed -n "$count"p "$path/"saida.marcpl2709`

Experimente substituir o until por um while assim:

        while read linha; do
            ...
        done <"$path/"saida.marcpl2709

Você não vai precisar contar o número de linhas do arquivo antes
também.

Gustavo.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]