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

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

Re: [shell-script-pt] separador de milhar


From: Itamar Santos de Souza
Subject: Re: [shell-script-pt] separador de milhar
Date: Wed, 28 Oct 2020 17:42:04 +0000 (UTC)

Então esquece o awk e tenta esse sed para formatar o número, espero que funcione:

sed -r -e 's/\./,/' -e ':a;s/([^.,])([0-9]{3})([,.])/\1.\2\3/;t a'

E depois usa o printif para alinhar como se fosse uma string.

[]'s
Itamar

Em quarta-feira, 28 de outubro de 2020 14:23:25 BRT, PY2YP <py2yp@py2yp.com> escreveu:


Muito obrigado Paulo mas o Cygwin é ruim de serviço, nada funcionou.

--
Cesar

On 10/28/2020 11:22 AM, Paulo wrote:
> ops não usei um número com milhar
>
> octal
> awk 'BEGIN {printf "%\047.2f\n", 13434324.24}'
> 13.434.324,24
>
> hexa
> awk 'BEGIN {printf "%\x27.2f\n", 13434324.24}'
> 13.434.324,24
>
> awk --posix 'BEGIN {printf "%\x27.2f\n", 13434324.24}'
> ccfdd427.2f
>
>
> aspa simples escapada
> awk 'BEGIN {printf "%'\''.2f\n", 13434324.24}'
> 13.434.324,24
>
>
> On 28/10/2020 11:15, Paulo wrote:
>> Olá Cesar, isso pode ser incompatibilidade do Cygwin?
>> O awk reconhece o octal
>> awk 'BEGIN {printf "%\047f\n", 10/3}'
>> 3,333333
>>
>> Hexadecimal só o GNU awk reconhece acho
>> awk 'BEGIN {printf "%\x27f\n", 10/3}'
>> 3,333333
>>
>> awk --posix 'BEGIN {printf "%\x27f\n", 10/3}'
>> 327f
>>
>> Veja se o Cygwin reconhece assim
>> awk 'BEGIN {printf "%'\''f\n", 10/3}'
>> 3,333333
>> fecha as aspas simples do awk depois imprime uma aspa simples
>> (escapada \' ou entre aspas duplas "'")
>> depois abre as aspas simples do awk novamente.
>> Abraços Paulo
>>
>> On 28/10/2020 09:05, PY2YP wrote:
>>> Bom dia senhores,
>>>
>>> Estou tentando formatar uma saída com separadores de milhar. Os
>>> comandos abaixo funcionam muito bem:
>>>
>>> LC_NUMERIC=en_US printf "%'.2f\n" 13434324.24 retornando
>>> 13,434,324.24 em seguida enviando:
>>> sed -i 's/\./\,/g' filename
>>> retorna:
>>> 13.434.324,24
>>>
>>> Até aí não há qualquer dúvida. O problema é que preciso dessa
>>> formatação nesta associação de comandos:
>>>
>>> grep "CRA" b4.csv | awk -F";" '{x+=$3}END{printf "Total de CRA"
>>> "%51.2f\n",  x}'  >> total.csv
>>>
>>> Aonde o arquivo b4.csv tem os valores no formato 13434324.24.
>>>
>>> Então o comando para formatação ficaria assim:
>>> grep "CRA" b4.csv | awk -F";" '{x+=$3}END{printf "Total de CRA"
>>> "%'51.2f\n",  x}'  >> total.csv
>>> Trazendo o foco para o gerador do problema: "%'51.2f\n" o single
>>> quote está conflitando com o single quote de abertura da chave do
>>> awk: '{...
>>> Tentei usar "%\047... mas não funcionou. Uso o CYGWIN64.
>>> Alguma dica? Agradeço antecipadamente,
>>>
>
> _______________________________________________
> 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.

reply via email to

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