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

[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-----


reply via email to

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