[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Problema com arquivo grande
From: |
Marco Sinhoreli |
Subject: |
Re: [shell-script] Problema com arquivo grande |
Date: |
Fri, 14 Oct 2005 10:02:39 -0300 |
Galera,
Valeu pela força de todos vocês. Sinto que agora consigo fazer o
processo com maior rapidez.
Abraços a todos
Em 13/10/05, Tiago Barcellos Peczenyj<address@hidden> escreveu:
> Ola
>
> Veja se este script não ajuda :
>
> head -1 arquivo > lines
> cat arquivo | while read LINHA
> do grep -q $LINHA lines || echo $LINHA >> lines
> done
>
> a partir de uma semente "a primeira linha" ele procura no arquivo
> lines se existe cada linha no arquivo e, caso contrario, adiciona a
> linha no final.
>
> vc tem um arquivo lines com todas as linhas não repetidas (espero)
>
> Não sei se não é mais demorado do que a forma que estás fazendo, mas
> fica a dica.
>
> Em 13/10/05, Luiz Henrique<address@hidden> escreveu:
>
> > Acho que assim funicionaria melhor :-)
> >
> >
> > cont =1
> > e=1
> > while [ $e -gt 0 ]
> > do
> >
> > i=$(sed -n "$cont"p ARQVAL | cut -c-13)
> >
> > if [ ! $(echo ${var[@]}| grep $i) ];
> > then
> > var[$cont]=$i
> > let cont++
> > fi
> >
> > e=$(sed -n "$i"p $1 |wc -c) # Identifica o tipo da linha
> >
> > done
> >
> >
> >
> > Luiz Henrique escreveu:
> >
> > >Da uma olhada no awk que ele faz um trabalho legal com arquivos
> > >
> > >ou da uma olhada se funciona assim:
> > >repare o uso do "sed"
> > >
> > >#! /bin/bash
> > >
> > >cont=1
> > >for i in $(sed -n "$cont"p ARQVAL | cut -c-13)
> > > do
> > > if [ ! $(echo ${var[@]}| grep $i) ];
> > > then
> > > var[$cont]=$i
> > > let cont++
> > > fi
> > >done
> > >
> > >
> > >
> > >
> > >
> > >Marco Sinhoreli escreveu:
> > >
> > >
> > >
> > >>Olá a todos,
> > >>
> > >>Tenho um arquivo com, pra ser exato ;-), 6.352.886 linhas.
> > >>Preciso listar as ocorrências considerando que as repetidas não irei
> > >>armazenar novamente:
> > >>
> > >>
> > >>#! /bin/bash
> > >>
> > >>cont=0
> > >>for i in $(cut -c 13-16 ARQVAL)
> > >> do
> > >> if [ ! $(echo ${var[@]}| grep $i) ];
> > >> then
> > >> var[$cont]=$i
> > >> let cont++
> > >> fi
> > >>done
> > >>echo ${var[@]}
> > >>
> > >>Problema: no ínicio do laço, o i/o fica grande para a leitura do
> > >>arquivo gigante (231M) e o processo não vai adiante.
> > >>
> > >>Gostaria de ver a possíbilidade de ler linha a linha sem necessidade
> > >>de armazenamento prévio, é possível?
> > >>
> > >>[]s
> > >>
> > >>
> > >>--
> > >>Marco Sinhoreli
> > >>
> > >>
> >
> >>---------------------------------------------------------------------
> > >>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
> >
> ---------------------------------------------------------------------
> >
> >
> >
> >
> > Yahoo! Grupos, um serviço oferecido por:
> >
> > ________________________________
> > Links do Yahoo! Grupos
> >
> >
> > Para visitar o site do seu grupo na web, acesse:
> > http://br.groups.yahoo.com/group/shell-script/
> >
> > Para sair deste grupo, envie um e-mail para:
> > address@hidden
> >
> > O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
> > Yahoo!.
>
>
>
> ---------------------------------------------------------------------
> 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
> ---------------------------------------------------------------------
>
>
>
>
> Yahoo! Grupos, um serviço oferecido por:
>
> ________________________________
> Links do Yahoo! Grupos
>
>
> Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/shell-script/
>
> Para sair deste grupo, envie um e-mail para:
> address@hidden
>
> O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
> Yahoo!.
--
Marco Sinhoreli