Pular para o conteúdo

Criando lista de dados não repetidos

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Criando lista de dados não repetidos

Enviado em 11/06/2015 - 01:10h

Prezados listeiros,

Possuo um problema do qual sei que vocês poderão me ajudar. Tenho uma lista que contem dados meteorológicos distribuídos da seguinte forma:

20100101.met: dado1 dado2 dado3 ... dado10
20100102.met: dado1 dado2 dado3 ... dado10
20100103.met: dado1 dado2 dado3 ... dado10
20100104.met: dado1 dado2 dado3 ... dado10
20100105.met: dado1 dado2 dado3 ... dado10

e assim por diante. só que algumas linhas possuem a repetição do início da linha, ou seja 2010{mês}{dia} e eu gostaria de poder usar um script que pegasse somente as primeiras linhas dessas que se repetem e não as demais repetidas e jogar todos estes dados não repetidos num .txt

A princípio o que eu fiz foi usar o comando grep -m -1 2010{mês}{dia} <nome do arquivo> >> teste.txt porém não esta dando certo.

Se alguém tiver alguma dica ficarei bastante agradecido!

Abraços a todos!

Pavel.

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Criando lista de dados não repetidos

Enviado em 11/06/2015 - 01:37h

O comando head -n arquivo pega somente as n primeiras linhas do arquivo.
O comando tail -n arquivo pega somente as n últimas linhas do arquivo.
Agora prá filtrar linhas do meio pode ser uma boa estudar o comando awk com uma expressão regular que será baseada nas datas que você deseja filtrar.

awk -F ' ' '{ /^201505/ print $1 $2 $3 ... }'

Para filtrar linhas duplicadas eu usaria o comando sort, que ordena dados e o comando uniq, que elimina duplicidades.
--
Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

3. Re: Criando lista de dados não repetidos

Enviado em 11/06/2015 - 20:00h

eu iria sugerir o grep -w mas o uniq realmente foi o pulo do gato

4. Re: Criando lista de dados não repetidos

Enviado em 16/06/2015 - 19:16h

cat arquivo_lista | sort | uniq > dados_nao_repetidos.txt  


5. Re: Criando lista de dados não repetidos

Enviado em 16/06/2015 - 19:47h


recomendo leitura do julio cesar neves com urgencia ))) , to brincando mais o exemplo do amigo acima resolve

6. Re: Criando lista de dados não repetidos

Enviado em 23/06/2015 - 14:18h

tonyhts escreveu:

cat arquivo_lista | sort | uniq > dados_nao_repetidos.txt  



Fiquei curioso...

Deu certo?


7. Re: Criando lista de dados não repetidos

Enviado em 23/06/2015 - 15:01h

cria um arquivo filtro.awk desta forma:

#!/usr/bin/awk -f
BEGIN { reg_anterior="x"; }
{
reg_atual = substr($0,1,8);
if ( reg_atual != reg_anterior ) { print $0; }
reg_anterior=reg_atual;
}


Obs: se o awk não estiver no /usr/bin, localiza o caminho dele com o whereis awk

Depois

chmod u+x filtro.awk
./filtro.awk arquivo.txt > arquivo_filtro.txt


Testei e funcionou.

---------------------
O perfeito é desumano porque o humano é imperfeito
(Fernando Pessoa)

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder