shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Como usar o UNIQ em CSV


From: César Vianna
Subject: Re: [shell-script] Como usar o UNIQ em CSV
Date: Wed, 23 Jan 2008 11:11:46 -0200

O arquivo é da seguinte forma

Código;Nome;CPF;Endereço
001;João Silva;12345678900;Rua x
002;João Francisco Silva;12345678900;Rua x
003;José;98765432100;Rua y

O resultado esperado é separar

#CPF único
003;José;98765432100;Rua

e

#CPF duplicado
001;João Silva;12345678900;Rua x
002;João Francisco Silva;12345678900;Rua x


Acabei fazendo em duas etapas. Separei duas listas de CPFs com "uniq -u" e
"uniq -d" e depois fiz o seguinte script

#!/bin/bash
cat cpfs-duplicados.txt|
while read i
do
        grep $i retirar-cpfs-duplicados.csv >> duplicados.csv
done
cat cpfs-unicos.txt|
while read i
do
        grep $i retirar-cpfs-duplicados.csv >> unicos.csv
done


Ok,. Funcionou. Mas muito lento...



2008/1/23 Flavio Junior <address@hidden>:

>   Não entendi bem..
>
> mas veja as opções do sort e do uniq...
>
> Exemplo:
>
> sort
> -k, --key=POS1[,POS2] start a key at POS1, end it at POS2 (origin 1)
> -t, --field-separator=SEP use SEP instead of non-blank to blank transition
>
> uniq
> -f, --skip-fields=N avoid comparing the first N fields
>
> Sem um padrão do arquivo fica dificil..
> Vc passar dados dos outros impossivel...
>
> Então fica mais dificil ajudar, mas se puder montar algo com umas 4 ou
> 5 linhas no padrão e dados inuteis, eu tentaria ajudar mais..
>
> --
>
> Flávio do Carmo Júnior
>
> 2008/1/23 César Vianna <address@hidden <cesar.vianna%40gmail.com>
> >:
>
> >
> >
> >
> >
> >
> >
> > Buenas !!
> >
> > Tenho um csv com 5 campos. O terceiro são CPFs. Tenho que separar em
> dois
> > arquivos: um com os CPFs duplicados e outro com os CPFs únicos.
> >
> > Fiz assim:
> >
> > cut -d";" -f3 arquivo.csv | uniq -d
> >
> > e
> >
> > cut -d";" -f3 arquivo.csv | uniq
> >
> > Ok. O problema é que eu perco o resto da linha. Tem alguma opção do uniq
> ou
> > outro comando para recuperar o conteúdo da linha? Como os grupos ( \1
> ... )
> > em expressões regulares.
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]