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

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

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


From: fpasa
Subject: Re: RES: RES: RES: [shell-script] Maior linha
Date: Mon, 01 Nov 2004 14:20:03 -0000
User-agent: eGroups-EW/0.82

Julio,

incrível ! Não levou nem 1 minuto dessa forma.

Mais uma vez, valew pela força.

abraço,
Fabiano

--- Em address@hidden, Julio Cezar Neves - 
DATAPREVRJ <julio.neves@p...> escreveu
> 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:julio.neves@p...
> 
> 
> | -----Mensagem original-----
> | De: fpasa [mailto:shell.script@t...]
> | 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: shell-script-
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]