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

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

Re: [shell-script] Pesquisa no SED


From: Flavio Junior
Subject: Re: [shell-script] Pesquisa no SED
Date: Sat, 5 Jan 2008 20:21:33 -0200

Boa tarde..

Bom, é muito provavel que voce nunca tenha uma abreviação no ultimo
nome do cadastro, correto?
Então podemos trabalhar com o primeiro e ultimo nome do cadastro... por ex:

PRINOME=${NOME2// */}
ULTNOME=${NOME2//* /}

$ sed -n "/$PRINOME.*$ULTNOME/,+1p" arq.txt
$ sed -n "/$ULTNOME.*$PRINOME/,+1p" arq.txt

Essa segunda eu acho desnecessária até, dificilmente vai ter um nome
cadastrado invertido...

Nao tive tempo de ver teu script, mas da uma testada nessa ideia ai...

abraço,

Flavio do Carmo Junior

On Jan 5, 2008 1:13 AM, Cristiano Ferrari <address@hidden> wrote:
>
>
>
>
>
>
> Salve lista, boa madrugada!
>
>  Seguinte...
>
>  Estou com um pepino nas mãos e estou quase resolvendo-o com um shell
>  script.
>
>  A história: a empresa resolveu re-ativar uma região comercial há muito
>  abandonada e me pediu um levantamento das vendas que ocorreram no
>  passado, para que o novo vendedor pudesse visitar os antigos clientes.
>  Levantamento feito, cheguei a um número de exatos 307 clientes.
>
>  O problema: o cadastro deste 307 clientes não tem mais nada além de
>  nome e CPF. Não tem endereço, telefone, celular, nada que permita ao
>  cara contatá-los.
>
>  O pepino: Pesquisar na internet, nos sites de listas telefônicas, os
>  benditos 307 nomes e apresentar ao cara uma listagem com as informações.
>
>  A idéia(thanks God for the linux): Criar um script que, à partir de
>  uma lista com o nome das 307 pequenas crianças, poste uma consulta em
>  um determinado website (www.telelistas.net), trate os dados e me crie
>  uma listagem.
>
>  A solução: O script tá quase pronto ( http://pastebin.com/f7d4ec93f ).
>  Meio tosco, eu sei, mas para quem a pouco mais de 1 mês atrás só
>  conhecia sed/awk de nome, tá lindão!
>
>  A dúvida: Olhem o texto do script, na linha marcada de amarelo:
>
>  sed -n "/$NOME2/,+1p"
>
>  Este compando me retorna a linha com o nome do cidadão ($NOME2) e a
>  linha seguinte, que devidamente tratada à partir do dump da página de
>  pesquisa do site, me dá o endereço.
>
>  A questão é que este comando casa apenas o que for **exatamente**
>  igual ao nome que está na listagem, mas alguns nomes podem ter sido
>  abreviados no meu cadastro. Por exemplo, um "José Aparecido da Silva",
>  pode estar na minha listagem como "José A. da Silva" ou apenas "José
>  da Silva". Ao postar a consulta no site, ele automaticamente retornara
>  tudo o que tiver "José" "Aparecido [ou A.]" e "da Silva".
>
>  Mas, ao construir minha tabela, só vou listar o que casar exatamente,
>  devido ao comando acima.
>
>  Pergunto: como eu poderia reescrever este comando para que ele pegasse
>  o conteúdo da variável $NOME2 e casasse com a linha que tivesse **pelo
>  menos 2 de cada um** dos nomes nela listados (e separados por espaço).
>
>  Por exemplo, se o conteúdo de $NOME2 for "José Carlos Cardoso", que
>  ele liste todas as linhas que casarem com:
>
>  José Carlos Cardoso
>  Carlos José Cardoso
>  Cardoso José Carlos
>  Cardoso Carlos José
>  José Cardoso
>
>  Preciso disso, pois se no meu cadastro o cara estiver apenas como
>  "José Cardoso" ou "José C. Cardoso", por exemplo, o resultado do
>  telelistas será listado, mesmo que lá estiver completo.
>
>  Desculpem o jornalzão...
>
>  Vou dormir que tá tarde.
>
>  Abraços...
>
>  Cristiano Ferrari
>
>  


reply via email to

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