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

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

Script lento...


From: Luciano Depierri
Subject: Script lento...
Date: Tue, 24 May 2005 09:41:26 -0300

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. 
Segue o trecho principal do meu script. Alguem tem alguma idéia para "tentar" 
deixar mais rápido o processo? Ou é isso mesmo, quanto mais pesado o arquivo de 
entrada mais lento será o processamento?
Obs: Se eu rodar de uma só vez as 6450044 linhas, parace que estou dando um 
sleep 2 no processamento de cada linha.

Agradeço antecipadamente.

...
        qtd_linhas=`wc -l "$path/"saida.marcpl2709 | awk '{print $1;}'`
        until [ "$var" = "1" ]; do
             linha=`sed -n "$count"p "$path/"saida.marcpl2709`
             echo "$count" >> $path/ChangeMarc.saida-teste
             campo=`echo "$linha" | awk '{print $1;}'`
             if [ "$campo" = "300" ]; then
                  teste=`echo "$linha" | sed -n '/videocassete/p'`
                  if [ "$teste" != "" ]; then
                       LDRcount=0
                       linhabranco=0
                       num_linha_enc="$count"
                       until [ "$LDRcount" = "1" ]; do
                            num_linha_enc=`expr "$num_linha_enc" - "1"`
                            linha_ant=`sed -n "$num_linha_enc"p 
"$path/"saida.marcpl2709`
                            LDR=`echo "$linha_ant" | awk '{print $1;}'`
                            if [ "$LDR" = "LDR" ]; then
                                 LDRcount=1
                            fi
                       done
                       until [ "$linhabranco" = "1" ]; do
                             linha_reg=`sed -n "$num_linha_enc"p 
"$path/"saida.marcpl2709`
                             echo "$linha_reg" >> $path/ChangeMarc.saida
                             num_linha_enc=`expr "$num_linha_enc" + "1"`
                             linhabrancoaux=`echo "$linha_reg" | awk '{print 
$1;}'`
                            if [ "$linhabrancoaux" = "" ]; then
                                 linhabranco=1
                            fi
                       done
                  fi
             fi
      if [ "$count" = "$qtd_linhas" ]; then
           var=1
      fi
      count=`expr "$count" + "1"`
 done
...


--------------------------------------------------------------------------------
      Luciano Depierri 
      Analista de Sistemas - NAI-SBI-PUC-Campinas
      Fone: (19) 3735-5845 - Fax: (19) 3735-5818  
     
      
       



[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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