Pular para o conteúdo

Criando lista de dados não repetidos

Responder tópico
  • 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

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

Responder tópico

Entre na sua conta para responder.

Fazer login para responder