[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.