[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Alguma forma de rolar a leitura de um arquivo todo?
From: |
MrBiTS |
Subject: |
Re: [shell-script] Alguma forma de rolar a leitura de um arquivo todo? |
Date: |
Mon, 09 Feb 2009 09:35:54 -0200 |
User-agent: |
Thunderbird 2.0.0.19 (X11/20090105) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Kurt Kraut wrote:
> Aloha,
>
> Eu tenho feito muitos trabalhos em que preciso que o script leia linha
> por linha de um log e a interprete. A forma que tenho feito o trabalho
> é essa:
>
>
> i=1
> while [ $i -le 33486 ]
> do
> line="$(head -$i arquivo.log|tail -1)"
> echo AS$line >> list05.txt
> i=`expr $i + 1`
> done
>
>
> Onde arquivo.log tem 33486 linhas. Este script levou 8min58sec para
> ser executado em um servidor ocioso. Acompanhando o tail -f list05.txt
> vi que a escrita era em rajadas. Toda a performance me pareceu
> bastante insatisfatória.
>
> Alguém me recomenda uma forma mais eficiente de ler um arquivo linha a linha ?
>
>
> Desde já agradeço a atenção,
Um arquivo de 33.000 linhas é nada. Leio arquivos cujo tSeu problema não está
na leitura do arquivo em sí.amanho vai na ordem dos
Gigabytes em instantes.
Veja que você faz um head para pegar a linha que você quer e um expr para
calcular. Eu aconselho você a usar um outro recurso para
ler os arquivos:
LINHA=0
while read LINE ; do
echo AS$LINHA
done < arquivo.log >> list05.txt
Isso já mata o head, o redirecionamento e você não tem que incrementar seu
contador de linha.
- --
Um abraço
.0. MrBiTs - address@hidden
..0 GnuPG -
http://keys.cardboard.net:11371/pks/lookup?op=get&search=0xAC37715A6DD1F186
000 http://www.mrbits.com.br
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFJkBUarDdxWm3R8YYRAotcAJ95UCSHEwuGXBbPuOBLxHpaP/LZrQCfWPWs
MVleB+zAUaKi5UikWGGPL4I=
=WcMK
-----END PGP SIGNATURE-----