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

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

Re: [shell-script] concatenar arquivos


From: Emerson Domingues Souto
Subject: Re: [shell-script] concatenar arquivos
Date: Fri, 22 Apr 2005 12:19:28 -0300

Alem das razoes citadas pelo Gustavo, mais um motivo de não utilizar o glob
é pq degrada a velocidade da pesquisa.


----- Original Message ----- 
From: "Gustavo Chaves" <address@hidden>
To: <address@hidden>
Sent: Friday, April 22, 2005 9:27 AM
Subject: Re: [shell-script] concatenar arquivos



>>>>> On Thu, 21 Apr 2005 23:26:20 -0300 (BRT), Felipe Kellermann
<address@hidden> said:

  > On Thu, 21 Apr 2005 11:03pm  -0300, Gustavo Chaves wrote:

  >> Experimente o seguinte comando, supondo que você esteja no diretório
  >> que contém os logs:
  >>
  >> ls | egrep '^access_log(\.[0-9]+)?$' | sort -t. -k 2nr | xargs cat
>logao

  > Algum motivo especial para nao selecionar os arquivos via glob? :-)

Na mensagem original ele mencionou que queria excluir um arquivo
chamado 'access_log_dia'.  No caso específico, daria pra implementar o
filtro necessário assim, por exemplo:

        ls access_log access_log.*

Mas, imaginando que cedo ou tarde pudessem aparecer outros arquivos
com nomes parecidos que também devessem ser excluídos, o que tornaria
a solução com glob mais complicada ou mesmo impraticável, eu achei
melhor ser bastante específico usando uma expressão regular.  (Imagine
se aparecer um arquivo 'access_log.old'.  Ou um 'access_log.3.old'.)

Um outro motivo (totalmente irrelevante neste caso específico, mas que
pode ser importante em outras situações) é que se a expansão de um
glob gerar uma quantidade muito grande de nomes de arquivos pode-se
estourar o limite para o tamanho da linha de comando da shell ou o
limite para o tamanho dos argumentos que o kernel pode passar para um
processo.  (No Linux, por exemplo, este limite é de 128KB, o que é
bastante mas não é infinito. :-)

  >> BTW, supondo, também, que você esteja usando o sort do GNU.  Nem todos
  >> os comandos sort aceitam os argumentos -t e -k.

  > Mesmo? Eu nao sei, acho que todos tem. Ou tu quis dizer sobre os
formatos
  > usando o `-k' ou os antigos `-+n', por exemplo? Todos deveriam ter, pelo
  > menos. Ref.,
<http://www.opengroup.org/onlinepubs/007908799/xcu/sort.html>

Acho que você tem razão.  Eu me lembro (mas posso estar enganado) de
já ter visto um sort que não implementava a opção -k, somente a forma
antiga de selecionar campos com '-+n'.  Mas acabei de entrar nos
UNIXes mais antigos que ainda temos por aqui e o sort de todos eles
suporta mesmo as duas opções.

Gustavo.


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------

Links do Yahoo! Grupos











reply via email to

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