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

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

Re: Identificar a maior linha de um arquivo


From: rapha.couto
Subject: Re: Identificar a maior linha de um arquivo
Date: Mon, 31 Oct 2011 13:37:41 -0000
User-agent: eGroups-EW/0.82


Não sei se é a melhor forma, mas se precisar saber a posição da maior linha:

$ egrep -n ".{$(cat arquivo|wc -L)}" arquivo

O comando "cat arquivo |wc -L" vai retornar o tamanho da maior linha e repassar 
para a expressão regular do egrep que irá achá-la.

--- Em address@hidden, Moacir Souza <moacir.souza@...> escreveu
>
>      Ahm,
> 
>      Adicionalmente, se você precisa saber apenas o tamanho da maior
> linha e não a linha em si, existem outras formas:
> 
> - No Linux
> 
> $ wc -L arquivo
> $ tr -c "\n" "." < arquivo | sort -n | tail -n 1 | tr -d "\n" | wc -m
> (o wc -m conta, inclusive, o caractere de fim de linha, por isso usei
> aquele tr -d)
> 
> - No AIX (ou em qualquer lugar onde você não tenha os recursos -L do
> wc e o -c do tr, ou caso eles não funcionem como no Linux)
> 
> $ sed "s/././g" arquivo | sort | tail -n 1 | tr -d "\n" | wc -m
> 
> []'s,
> Moacir Filho
> 
> 2011/10/31 Moacir Souza <moacir.souza@...>:
> >     Hum,
> >
> >     Conheço essa forma:
> >
> > $ awk '{print length, $0}' teste | sort -nr
> >
> >     Perceba:
> >
> > $ cat teste
> > 111111111111111111111
> > 222222222222222222222222222222
> > 222222222222222222222222222222
> > 6666666666666666666666666666666666666666666666
> > 33333333333333333333333333333333333333333
> > 33333333333333333333333333333333333333333
> > 33333333333333333333333333333333333333333
> > 444444444
> > 5555555555555555555
> >
> > $ awk '{print length, $0}' teste | sort -nr | head -n 1
> > 46 6666666666666666666666666666666666666666666666
> >
> >     É claro que se quiser ver todas as linhas em ordem decrescente de
> > tamanho basta remover o "| head -n 1".
> >
> > Abraços,
> > Moacir Filho
> >
> > --
> > ==========================================
> > Moacir da Cruz Souza Filho
> >
> > Analista de Sistemas: Suporte Unix Avançado
> > Mestrando em Ciências da Computação
> > Bacharel em Engenharia da Computação
> > Técnico em Eletrônica
> > Linux user #449600
> > ==========================================
> >
> 
> 
> 
> -- 
> ==========================================
> Moacir da Cruz Souza Filho
> 
> Analista de Sistemas: Suporte Unix Avançado
> Mestrando em Ciências da Computação
> Bacharel em Engenharia da Computação
> Técnico em Eletrônica
> Linux user #449600
> ==========================================
>




reply via email to

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