[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
> ==========================================
>