De: "Blau Araujo" Enviada: 2022/03/25 23:18:15 Para: shell-script-pt@nongnu.org Assunto: Re: [shell-script-pt] Formatar string em R$
Como eu disse, depende da localização do seu sistema. Se não estiver com as definições em pt_BR.UTF-8, provavelmente não precisará fazer a troca do ponto pela vírgula na expansão, porque o ponto não causará problemas para o `printf'.
Sobre o seu resultado que você já conseguiu, com vírgulas e pontos trocados, basta um `tr' para resolver:
Em 25/03/2022 23:06, Dito Ramos escreveu: > Blau Araujo, obrigado pela atenção. > Mas, veja: > arquivo formatareal.sh > > #!/bin/bash > var="34522.77" > printf "R$%'.2f\n" ${var//./,} > > valor="34522.77" > echo R\$$(numfmt --grouping ${valor//./,}) > > Resultado do script: > > ./formatareal.sh > ./formatareal.sh: line 3: printf: 34522,77: invalid number > R$0.00 > numfmt: invalid suffix in input: ‘34522,77’ > R$ > > Pode ajudar? > > Grato. > > > > > ────────────────────────────────────────────────────────────────── > > De: "Blau Araujo" > Enviada: 2022/03/25 19:21:51 > Para: shell-script-pt@nongnu.org > Assunto: Re: [shell-script-pt] Formatar string em R$ > > > O printf pode apresentar erros com o uso do ponto como separador de > casas decimais (depende da localidade), então precisa de um pequeno > tratamento: > > > ``` > ~ $ var=34522.77 > ~ $ printf "R$%'.2f\n" ${var//./,} > R$34.522,77 > ``` > > Só por curiosidade, também podemos usar o `GNU numfmt', com o mesmo > cuidado com o ponto: > > ``` > :~$ valor=34522.77 > :~$ echo R\$$(numfmt --grouping ${valor//./,}) > R$34.522,77 > ``` > > Blau Araujo > ----------------------------- > https://debxp.org > https://blauaraujo.com > > Em 25/03/2022 18:14, Dito Ramos escreveu: > > Olá, mestres! > > Povo sumido. > > Tenho as seguintes string armazenada em variáveis: > > valor="34522.77" > > valor1="34522.7" > > valor3="0.00" > > valor4="1000000.7" > > valor5="1000000.78" > > valor6="10000000.78" > > valor7="1000000000.22" > > Preciso converter esses valores para moeda brasileira, prá ficar assim: > > 34.522,77 > > 34.522,70 > > 0,00 > > 1.000.000,70 > > 1.000.000,78 > > 10.000.000,78 > > 1.000.000.000,22 > > NOTA: Não preciso converter todos esses valores de uma só vez. Apenas > > mandei exemplos. > > Preciso de uma regra geral para converter esses valores em moeda real, > > colocando pontos nos milhares e trocar o último ponto por vírgula. > > RESUMINDO: transformar uma variável desse tipo em moeda brasileira. > > Tentei com os comandos "tr", "sed", "wc", até cheguei numa solução > > "gambiarrosa". Mas são muitos valores a tratar. > > > > Obrigado a todos que puderem ajudar. > > > > Dito Ramos > > > > _______________________________________________ > > 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. > > _______________________________________________ > 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. > > _______________________________________________ > 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.
_______________________________________________ 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.