[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]
Re: [shell-script] Filtrar e comparar campos de arquivos distintos, Julio C. Neves, 2013/05/27