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

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

Re: [shell-script] Leitura de linha X


From: Tiago Peczenyj
Subject: Re: [shell-script] Leitura de linha X
Date: Mon, 5 Oct 2009 22:03:15 -0300

a diferença de tempo é proporcional ao numero de linhas do arquivo e o quão
longe ele está.

mas a versão com sed com um q no final tem mais performance, pois aborta o
programa depois da linha solicitada. com head + tail vc tem que gerenciar 2
processos, o que vc pode não desejar fazer por algum motivo. faltou esta
opção:

 time awk 'NR==1532{print}' arquivo.log

fiz uns testes com o auth.log.0 - meu maior log no momento - e pareceu ter
tanta performance quanto head + tail.

2009/10/5 jimmy <address@hidden>

>
>
> On Mon, Oct 05, 2009 at 04:20:00PM -0300, Victor Hugo Leite wrote:
> >
> >
> > Senhores, para realizar a leitura de uma linha X sempre utilizei head +
> > tail, exemplo:
> >
> > Ler linha 48 de um arquivo:
> > head -48 arquivo | tail -1
> >
> > Ler a linha 3 da saida de um comando:
> > comando | head -3 | tail -1
> >
> > Gostaria de saber se existe alguma maneira mais elegante e rápida de
> > realizar esta tarefa.
> >
> > Aguardo retorno e desde já agradeço as respostas que sei que serão
> > encaminhadas prontamente.
> >
> > Att,
> > Victor Hugo
> >
>
> creio que a única forma de se conseguir algum ganho em relação o head +
> tail
> seria usar o sed da seguinte forma:
>
> $ sed '48!d;q' arquivo
>
> dessa forma o sed lê o arquivo e deleta todas as linhas exceto a linha
> desejada, o comando "q" faz o sed abandonar a leitura do arquivo
> imprimindo a última linha que ficou no pattern space, ou seja, justamente
> a linha 48 do exemplo, isso inclusive pode ser percebido fazendo o
> teste:
>
> $ sed '=;48!d;q' arquivo
>
> o comando "=" usado dessa forma irá imprimir o número de todas as linhas
> que estão sendo processadas.
>
> --
> "Não manejo bem as palavras
> Mas manipulo bem as strings."
> ------------------------------
>  
>



-- 
Tiago B. Peczenyj
Linux User #405772

http://pacman.blog.br


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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