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

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

Re: [shell-script] Filtrar e comparar campos de arquivos distintos


From: Julio C. Neves
Subject: Re: [shell-script] Filtrar e comparar campos de arquivos distintos
Date: Mon, 27 May 2013 18:51:39 -0300

Cara dei uma bobeada nas 2 respostas que dei para esse problema. Quando fiz:
-f <(sed 's/^/\;/;s/$/$/' cidades.txt)
o sed colocaria antes de cada linha de cidades.txt um ponto e vírgula e no
fim de cada linha um $. Com isso eu evitaria casar parte de cidade, isto é,
Urubu não casaria com Urubupungá.

Só que eu havia me esquecido que a opção -w só deixa casar palavra inteira,
então não precisaria daquela parafernália toda, bastaria fazer:

grep -v ';;' cadastro.txt | grep -vwf cidades.txt

O único problema seria provocado por cidades com caracteres especiais
(hífen ou branco)

Abcs,
Julio
*@juliobash
*



Em 27 de maio de 2013 15:00, nerobarrabas <address@hidden> 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]



reply via email to

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