[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: RES: RES: RES: [shell-script] Maior linha,
fpasa <=