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: