[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- RES: RES: RES: [shell-script] Maior linha,
Julio Cezar Neves - DATAPREVRJ <=