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."
------------------------------

Responder a