[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Como usar o UNIQ em CSV
From: |
Flavio Junior |
Subject: |
Re: [shell-script] Como usar o UNIQ em CSV |
Date: |
Wed, 23 Jan 2008 12:51:05 -0200 |
Uma segunda solução.. mas sem usar o uniq...
[root@catatau:~]# cat txt
001;João Silva;12345678900;Rua x
002;João Francisco Silva;12345678900;Rua z
003;José;98765432100;Rua y
[root@catatau:~]# OCPF=0; i=1; while IFS=';' read C N CPF END; do let
i+=1; LINHA="$C;$N;$CPF;$END"; if [ "$CPF" == "$OCPF" ] && [ $i -gt 1
]; then echo "$LINHA" >> dups.txt ; else echo "$LINHA" >> naodups.txt;
fi; OCPF=$CPF; done < <(sort -t';' -k3 txt)
[root@catatau:~]# cat dups.txt
002;João Francisco Silva;12345678900;Rua z
[root@catatau:~]# cat naodups.txt
001;João Silva;12345678900;Rua x
003;José;98765432100;Rua y
[root@catatau:~]#
Sorry.. mas eu faço na pressa e não tenho paciencia de fazer script :D
--
Flávio do Carmo Junior
2008/1/23 Reinaldo Carvalho <address@hidden>:
>
>
>
>
>
>
> #!/bin/bash
> > unicos.csv
> > duplicados.csv
>
> file=$(cat arquivo.csv)
> while read cpf; do
> lines=$(grep $cpf <<< "$file")
> test $(grep -c $cpf <<< "$lines") -eq 1 && {
> echo -e "$lines" >> unicos.csv
> true
> } || {
> echo -e "$lines" >> duplicados.csv
> }
> done < <(cut -d";" -f3 <<< "$file" | uniq)
>
>
>
> On 1/23/08, Reinaldo Carvalho <address@hidden> wrote:
> > #!/bin/bash
> > > unicos.csv
> > > duplicados.csv
> >
> > file=$(cat arquivo.csv)
> > while read cpf; do
> > lines=$(grep $cpf <<< "$file")
> > test $(grep -c $cpf <<< "$lines") -eq 1 && {
> > echo -e "$lines" >> unicos.csv
> > true
> > } || {
> > echo -e "$lines" >> duplicados.csv
> > }
> > done < <(cut -d";" -f3 arquivo.csv | uniq)
> >
> >
> > --
> > Reinaldo Carvalho
> >
> >
> >
> > On 1/23/08, César Vianna <address@hidden> wrote:
> > > 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]
> > >
> > >
> > >
> > > ----------------------------------------------------------
> > > Esta lista não admite a abordagem de outras liguagens de programação,
> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> > > ----------------------------------------------------------
> > > Sair da lista: address@hidden
> > > ----------------------------------------------------------
> > > Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> > > ----------------------------------------------------------
> > > Servidor Newsgroup da lista: news.gmane.org
> > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > >
> > >
> > > Links do Yahoo! Grupos
> > >
> > >
> > >
> >
>
> --
> Reinaldo Carvalho
>
- Como usar o UNIQ em CSV, César Vianna, 2008/01/23
- Re: [shell-script] Como usar o UNIQ em CSV, Flavio Junior, 2008/01/23
- Re: [shell-script] Como usar o UNIQ em CSV, Reinaldo Carvalho, 2008/01/23
- Re: [shell-script] Como usar o UNIQ em CSV, Fabiano Caixeta Duarte, 2008/01/23
- Re: [shell-script] Como usar o UNIQ em CSV, Tiago Barcellos Peczenyj, 2008/01/23
- Re: [shell-script] Como usar o UNIQ em CSV, Fabiano Caixeta Duarte, 2008/01/23