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 19:13:05 -0300

Na solução que escrevi:
$ grep -v ';;' cadastro.txt | grep -vf <(sed 's/^/\;/;s/$/$/' cidades.txt)
Isso não aconteceria, pois ele procuraria por ;salvador$, ou seja, antes de
salvador teria de haver um ponto e vírgula e após, um cifrão para indicar
fim.

Uma outra solução plausível seria:

$ grep -v ';;' cadastro.txt | grep -wvf cidades.txt

pois a opção -w só casa palavras inteiras, porém se vc incluir uma cidade
chamada belo, no primeiro caso ela não casará, mas no segundo casará com
belo horizonte.

Eu sei que acabei de escrever isso, mas estou repetindo não é pq fiquei
gagá, é pq não tinha gostado do jeito que escrevi antes. Achei que ficou
complicado de entender.

Abcs,
Julio
*@juliobash
*



Em 27 de maio de 2013 15:39, Fredi Bieging <address@hidden>escreveu:

> Humm.. mas tem um problema em fazer assim "grep -Fvf cidade.txt < <(sed 1d
> cadastro.txt)".
>
> Se tiver alguém com o nome e/ou sobrenome "salvador", por exemplo, não vai
> funcionar.
>
>
> 2013/5/27 Fredi Bieging <address@hidden>
>
> > grep -Fvf cidade.txt < <(sed 1d cadastro.txt)
> >
> >
> > 2013/5/27 nerobarrabas <address@hidden>
> >
> >> **
> >>
> >>
> >> 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]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> 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
>
>
>


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



reply via email to

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