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: 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
>  


reply via email to

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