Criando lista de dados não repetidos

1. Criando lista de dados não repetidos

Paulo Henrique de Almeida Soares Pimenta
pavel_minski

(usa Ubuntu)

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.


  


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

Perfil removido
removido

(usa Nenhuma)

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

luiz
luizsouza99

(usa Linux Mint)

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

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

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

Perfil removido
removido

(usa Nenhuma)

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

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

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

Luis Henrique Pessoa
gwarah

(usa Ubuntu)

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)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts