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

Alguma forma mais rápida para ler um arq texto sequencial em bash



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 ?
Reply to: