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

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

Re: Filtrar e comparar campos de arquivos distintos


From: nerobarrabas
Subject: Re: Filtrar e comparar campos de arquivos distintos
Date: Mon, 27 May 2013 20:04:28 -0000
User-agent: eGroups-EW/0.82

Leslie,

Perfeito!
Era exatamente isso que precisava.
E como sou aluno aplicado, já fiz a lição de casa.
Ficou assim:

cat /tmp/ca.txt | sed -e '1d' |
while read cadastro; do 
blá blá blá

Valeu!!
Grato a todos que ajudaram.

Diramos

--- Em address@hidden, Leslie Watter <watter@...> escreveu
>
> Oi,
> 
> Eu fiz algo macarrônico, mas que funciona segundo os arquivos que vc mandou.
> 
> 
> $ cat /tmp/ca.txt  | while read cadastro; do cidade=$(echo $cadastro | cut
> -d \; -f 3 );  RES=$(grep -c "$cidade" /tmp/ci.txt); if [ "$RES" == "0" ];
> then echo $cadastro; fi ; done
> 
> 
> nome;sobrenome;cidade
> marcos;nogueira;belo horizonte
> paulo;nogueira;campo grande
> 
> Explicando:
> 
> cat /tmp/ca.txt  |
>   while read cadastro; do
>     cidade=$(echo $cadastro | cut -d \; -f 3 );
>     RES=$(grep -c "$cidade" /tmp/ci.txt);
>     if [ "$RES" == "0" ]; then
>       echo $cadastro;
>     fi ;
> done
> 
> 
> /tmp/ca.txt -- cadastro
> /tmp/ci.txt -- cidades
> 
> o cat manda pro while ler linha a linha o cadastro.
> cidade recebe a cidade corrente (não me preocupei em tirar a 1a linha, fica
> pra vc)
> RES recebe o resultado da quantidade de ocorrências da cidade no arquivo de
> cidades
> se RES = 0 mostre a linha do cadastro
> fim :D
> 
> tirar a 1a linha fica de lição de casa pra vc, tem tantas maneiras de fazer
> isso que nem um sed 1,d seria exagero ...
> 
> 
> []s
> 
> LEslie
> 
> 
> 
> 
> 2013/5/27 Alysson Gonçalves de Azevedo <agalysson@...>
> 
> > **
> >
> >
> > No site http://linuxdicas.wikispaces.com/grep tem um exemplo assim:
> >
> > listar linhas do arquivo 1 que não estão no arquivo 2
> > > grep -Fxv -f file1 file2
> > >
> >
> > Então acredito que se você tentar grep -Fxv -f cadastro.txt cidade.txt vai
> > resolver parte do problema, só não dou certeza porque não tenho como testar
> > aqui. Depois é só tirar a primeira linha.
> >
> > Alysson Gonçalves de Azevedo - (11) 984 917 730
> >
> > "Anarcho-syndicalism is a way of preserving freedom." - Monty Python
> >
> > Em 27 de maio de 2013 15:00, nerobarrabas <diramos@...> escreveu:
> >
> > > **
> >
> > >
> > >
> > > Pessoal,
> > >
> > > Continuando com meu problema:
> > > Tenho 02 arquivos, com campos separados por ";", com o seguinte conteúdo:
> > >
> > > cadastro.txt
> > >
> > > nome;sobrenome;cidade
> > > joao;silva;brasilia
> > > carlos;souza;salvador
> > > chico;pereira;sao paulo
> > > marcos;nogueira;belo horizonte
> > > paulo;nogueira;campo grande
> > >
> > > cidade.txt
> > >
> > > brasilia
> > > salvador
> > > sao paulo
> > >
> > > Estou tentando fazer um script que funcione assim:
> > >
> > > Leia cada linha do arquivo cadastro.txt (a partir da segunda linha) e a
> > > compare com o
> > > arquivo "cidade.txt", retornando todas as linhas (completas) do
> > > "cadastro.txt"
> > > cuja 3ª coluna não conste do arquivo cidade.txt.
> > > Então, o meu retorno, para o caso acima, teria que ser o seguinte:
> > >
> > > marcos;nogueira;belo horizonte
> > > paulo;nogueira;campo grande
> > >
> > > Tentei grep -Fxv -f cidade.txt cadastro.txt mas o retorno não foi o
> > > esperado.
> > >
> > > Poderiam ajudar?
> > >
> > > Grato.
> > >
> > >
> > >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >  
> >
> 
> 
> 
> -- 
> Leslie H. Watter
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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