[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Comparar dois arquivos gigantes
From: |
jimmy |
Subject: |
Re: [shell-script] Comparar dois arquivos gigantes |
Date: |
Fri, 3 Jun 2011 19:25:28 -0300 |
User-agent: |
mutt-ng/devel-r804 (Linux) |
On Fri, Jun 03, 2011 at 02:26:30PM -0000, allan_hkrs wrote:
> Pessoal, sei que o grupo até não envolve o assunto que vou tratar, mas
> gostaria de pedir ajuda porque sei que vocês aqui manjam muito.
>
> Me defrontei hoje com uma situação não muito comum. Preciso
> comparar no shell dois arquivos texto (até aí tudo bem, faço isso
> rotineiramente). A questão é que um arquivo possui 87059 linhas e
> tenho que procurar cada linha dentro um arquivo de 2200 linhas, ou
> seja, procurar comparar cada linha das 87 mil com cada linha das 2200.
>
> Estava tentando fazer isso da seguinte maneira:
>
> egrep -f arquivo87mil.txt arquivo2mil.txt
>
> Só que dessa maneira segundo meus cálculos o resultado irá demorar
> absuradamente para ser gerado (cerca de 18 dias). A questão é...
> existe alguma outra forma de se fazer isso que seja melhor (num tempo
> viável)?
>
> Pensei em usar o awk ou mesmo fazer um programa em C... mas antes de
> estourar os miolos vim perguntar aos mestres dos magos... kkkkk
>
> Grato Allan .
>
>
Sua necessidade, na realidade, é comparar registros e não arquivos.
Os arquivos parecem "pequenos", mas ...
Qual o tamanho em bytes de cada registro?
Tamanho fixo, variável?
Quanto de memória tem disponível?
Supondo o arquivo com 87K linhas "A" e o arquivo com 2k linhas "B", você
precisaria saber:
- registros em A e NÃO em B;
- registros em A e em B;
- registros em B e NÃO em A;
- todos os anteriores?
--
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------