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

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

RES: RES: RES: [shell-script] Maior linha


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: RES: RES: [shell-script] Maior linha
Date: Thu, 28 Oct 2004 21:00:07 -0300

Fabiano,
pensei que o arquivo fosse pequeno e o tempo não seria fator crítico, como
estava meio enferrujado em awk, optei pela solução com while.

Tente o seguinte:

awk 'BEGIN {Max=0}
{ 
    if  (length ($0)>Max)
        Max=length ($0)
}
END {print Max}' Arquivo

Tenho certeza que o tempo cairá drasticamente. Informe depois à  lista.

[ ]s,
Julio Cezar Neves
- Gerente do Programa de Software Livre -
Tel:+55 21 2528-7070 / +55 21 8112-9988
Fax: +55 21 2528-7646
mailto:address@hidden


| -----Mensagem original-----
| De: fpasa [mailto:address@hidden]
| Enviada em: quinta-feira, 28 de outubro de 2004 16:09
| Para: address@hidden
| Assunto: Re: RES: RES: [shell-script] Maior linha
| 
| 
| 
| 
| Julio,
| 
| executei a solução em alguns arquivos grandes (cerca de 300.000 
| linhas) e levou cerca de 1,5 hora .
| Vc tem alguma idéia para otimizar isso ?
| 
| abraço,
| Fabiano
| 
| 
| --- Em address@hidden, Julio Cezar Neves - 
| DATAPREVRJ <julio.neves@p...> escreveu
| > Aê Fabiano,
| > Olha o teste que fiz:
| > 
| > Prompt> Linha="123   "
| > Prompt> echo ${#Linha}
| > 6
| > 
| > Conforme era esperado. Mas em todo caso experimente fazer:
| > 
| > Max=0
| > while read Linha
| > do
| >     [ $(expr length "$Linha") -gt $Max ] && Max=$(expr 
| length "$Linha")
| > done < Arquivo
| > echo $Max
| > 
| > [ ]s,
| > Julio Cezar Neves
| > - Gerente do Programa de Software Livre -
| > Tel:+55 21 2528-7070 / +55 21 8112-9988
| > Fax: +55 21 2528-7646
| > mailto:julio.neves@p...
| > 
| > 
| > | -----Mensagem original-----
| > | De: fpasa [mailto:shell.script@t...]
| > | Enviada em: quinta-feira, 21 de outubro de 2004 17:38
| > | Para: address@hidden
| > | Assunto: Re: RES: [shell-script] Maior linha
| > | 
| > | 
| > | 
| > | 
| > | Julio, na verdade não funcionou 100% . Quando existem espaços em 
| > | branco no final da linha ele não conta.
| > | 
| > | Vc tem alguma idéia ?
| > | 
| > | abraço,
| > | Fabiano
| > | 
| > | --- Em address@hidden, "fpasa" 
| <shell.script@t...> 
| > | escreveu
| > | > 
| > | > Julio, funcionou blz.
| > | > 
| > | > Valeu pela ajuda.
| > | > 
| > | > abraço,
| > | > Fabiano
| > | > 
| > | > 
| > | > --- Em address@hidden, Julio Cezar Neves - 
| > | > DATAPREVRJ <julio.neves@p...> escreveu
| > | > > Aê Fabiano,
| > | > > sem testar:
| > | > > 
| > | > > Max=0
| > | > > while read Linha
| > | > > do
| > | > >     [ ${#Linha} -gt $Max ] && Max=${#Linha}
| > | > > done < Arquivo
| > | > > echo $Max
| > | > > 
| > | > > A construção ${#Linha} é um parameter substitution que 
| devolve o 
| > | > tamanho da
| > | > > variavel Linha. Caso vc esteja usando Bourne Shell, substitua-
| a 
| > | por 
| > | > expr
| > | > > length $Linha
| > | > > 
| > | > > [ ]s,
| > | > > Julio Cezar Neves
| > | > > - Gerente do Programa de Software Livre -
| > | > > Tel:+55 21 2528-7070 / +55 21 8112-9988
| > | > > Fax: +55 21 2528-7646
| > | > > mailto:julio.neves@p...
| > | > > 
| > | > > 
| > | > > | -----Mensagem original-----
| > | > > | De: fpasa [mailto:shell.script@t...]
| > | > > | Enviada em: quinta-feira, 21 de outubro de 2004 16:58
| > | > > | Para: address@hidden
| > | > > | Assunto: [shell-script] Maior linha
| > | > > | 
| > | > > | 
| > | > > | 
| > | > > | 
| > | > > | Pessoal,
| > | > > | 
| > | > > | como faço para percorrer um arquivo e verificar qual o 
| tamanho 
| > | da 
| > | > > | maior linha do mesmo, incluindo espaços em branco ?
| > | > > | 
| > | > > | Exemplo:
| > | > > | aaaaaaaaaaaaaaaaaa
| > | > > | aaaaaa
| > | > > | aaaaaaaaaaa
| > | > > | aaaaaaaaaaaaaaaaaaaaa
| > | > > | aaaaaaaaaaaaa
| > | > > | aaaa
| > | > > | 
| > | > > | Neste caso a 4ª linha possui 21 posições, logo 21 é a maior 
| > | > > | quantidade de posições.
| > | > > | 
| > | > > | 
| > | > > | abraços,
| > | > > | Fabiano
| > | > > | 
| > | > > | 
| > | > > | 
| > | > > | 
| > | > > | 
| > | > > | 
| > | > > | 
| > | > > | 
| > | > > | 
| > | > > | 
| > | > > | ------------------------------------------------------------
| ----
| > | --
| > | > ---
| > | > > | 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
| > | 
| > | 
| > | 
| > | 
| > | 
| > | ------------------------------------------------------------------
| ---
| > | 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
| 
| 
| 
| 
| 
| ---------------------------------------------------------------------
| 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]