|
From: | George Robinson |
Subject: | Re: [shell-script-pt] Comparando strings (com acento / char especial vs sem acento / char especial) |
Date: | Thu, 12 Nov 2020 21:02:54 -0300 |
George,O sed e o tr são uma boa se você tem garantia de que não vão cair de paraquedas novos caracteres ao longo do caminho. Mas, se sua amostra de dados (sempre a amostra :-p) não estiver completa, você pode acabar tendo que ficar "dando suporte" ao script ao longo dos anos :-/A vantagem do iconv é que ele existe para manipular esse tipo de dado e, como há uma boa chance de vir por default ou pelo menos estar a um apt/yum install de distância, você pode apostar que não se incomodará mais com essa parte do algoritmo.Um coisa que chama atenção no seu sed:str=MAÇÃsed -e 's/[àâã]/a/g; s/[ọõ]/o/g; s/[í,ì]/i/g; s/[ê,ệ]/e/g') <<< ${str,,}Parece que essa vírgula marcada nas listas está sobrando. Você já não a usou nas duas primeiras listas (do a do o).Att,Em qui., 12 de nov. de 2020 às 20:39, George Robinson <george.robinson.br@gmail.com> escreveu:Boa noite Arkanon,Eu vi essa solução, e considerei em usar... porém, eu consegui fazer com o sed, usando um "mapa" de caracteres que eu gostaria de usar. Ficou assim:while IFS=, read hiringDate name lastName cpf cargo telefone email gestor salario ; do gestor=$(echo $gestor | sed -e 's/[àâã]/a/g;s/[ọõ]/o/g;s/[í,ì]/i/g;s/[ê,ệ]/e/g') ; do bla bla bla ; doneComo o único dado que vou comparar é o gestor (todos os outros serão novos dados), eu achei mais simples assim...Se alguém tiver mais alguma sugestão!Atenciosamente,Em qui., 12 de nov. de 2020 às 20:35, Arkanon <arkanon@lsd.org.br> escreveu:Boa noite, George.O iconv (no Ubuntu, aparentemente do pacote libc-bin) é uma boa alternativa.str=Maçã;Pode fazer o teste de pelo menos duas formas:iconv -f UTF-8 -t ASCII//TRANSLIT <<< ${str,,} | grep -q maca && echo iguais || echo diff[[ $(iconv -f UTF-8 -t ASCII//TRANSLIT <<< ${str,,}) == maca ]] && echo iguais || echo diffEm qui., 12 de nov. de 2020 às 20:24, George Robinson <george.robinson.br@gmail.com> escreveu:_______________________________________________Olá amigos da lista.Estou buscando uma forma de comparar duas strings onde uma delas é escrita com acento ou caracter especial e a outra não.Exemplo:Tornar joão = joão, maçã = maca, ignorando os especiais...Hoje eu tenho uma string que capturo de uma fonte de dados e preciso comparar com outra fonte de dados para buscar o ID referente, porém, por conta dessa diferença entre um cadastro com ã e outro com a por exemplo, o retorno é vazio. Exemplo abaixo:out.txt:2020-12-07,Vinícius,Camargo,36843664806,Analista de Marketing,+55 48 99142-2409,vh.camargo88@gmail.com,Cristina Pose Turnes,5500
2020-11-16,Rodrigo,Marafelli,12487916656,Desenvolvedor,+5535988835248,marafellirodrigo@gmail.com,Eduardo Alessandro Fiorezi,3000
2020-12-01,Guilherme,Rosa,08822812751,Gerente de Remuneração e Benefícios,+5521976748288,guilherme_rosa@me.com,João Guilherme Barbosa de Amorim,16000Tenho dados de 3 funcionários e quero comparar com um outro sistema que guarda essas infos, para saber se o campo 7 (gestor), existe, a fim de encontrar o ID. Os 3 gestores existem, porém, meu resultado é o seguinte:2e927bca-b19b-47f7-8431-1df0222080b7
9d81e9be-7aa8-4782-99a7-ca64d43f71312 IDs porque de um lado eu tenho João e do outro, tenho Joao, o que me retorna um ID nulo.Estou capturando os dados através de uma API e gostaria de comparar as strings não importando como foram inseridas. Já consigo por exemplo, ignorar o case, mas não consigo ignorar os especiais.É possível fazer com o sed, grep, awk, tr ou qualquer outro?
--George Robinson
Analista de Suporte
Tel: +55 (21) 97449-8138
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: shell-script-pt@nongnu.org
Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt
Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/
NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.
--_______________________________________________(o_ @arkanon (Twitter) __o
//\ arkanon@lsd.org.br _`\<,
V_/_ www.lsd.org.br (_)/(_)
---------------------------------
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: shell-script-pt@nongnu.org
Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt
Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/
NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.
--_______________________________________________George Robinson
Analista de Suporte
Tel: +55 (21) 97449-8138
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: shell-script-pt@nongnu.org
Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt
Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/
NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.
--_______________________________________________(o_ @arkanon (Twitter) __o
//\ arkanon@lsd.org.br _`\<,
V_/_ www.lsd.org.br (_)/(_)
---------------------------------
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: shell-script-pt@nongnu.org
Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt
Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/
NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.
[Prev in Thread] | Current Thread | [Next in Thread] |