[Ubuntu-BR] Alguma forma mais rápida para ler um arq texto sequencial em bash
hamacker
sirhamacker em gmail.com
Sexta Outubro 21 16:14:49 UTC 2011
Ola pessoal,
Eu tenho uma rotina dentro dum batch que reformata e audita o que desejo no
arquivo de log do squid, porém a medida que o log do squid aumenta torna-se
insustentável o tempo para ler este arquivo. A rotina para ler um arquivo
texto é assim :
SQUIDLOG="/var/log/squid3/access.log"
FINISH=$(wc -l "$SQUIDLOG"|cut -d" " -f1)
STARTING=0
while read SQUID_LINHA ; do
STARTING=$((STARTING+1))
PERC=$((STARTING*100/$FINISH))
PARAM_DATA_UNIXTIME=`echo $SQUID_LINHA|cut -d " " -f 1`
blablabla....
done < $SQUIDLOG
Só que essa forma de ler linha-a-linha é muito lenta, alias o bash é muito
lento.
Fiz um teste de script removendo o conteúdo entre o while read...done, e
praticamente não houve diferença de tempo, o que dá a entender que a demora
é por conta do próprio laço.
Será que há algum outro algorítimo ou função que poderia usar para melhor a
performance ?
More information about the ubuntu-br
mailing list