Digamos que eu tenha um script de shell POSIX que
- precisa ser executado em diferentes sistemas/ambientes que eu não controlo, e
- precisa remover o separador decimal de uma string que é emitida por um programa que respeita as configurações de localidade.
Como posso detectar o separador decimal da maneira mais geral?
Pergunte
locale
:Isso produzirá o ponto decimal usando as configurações de localidade atuais.
Se você precisar do separador de milhares:
Você pode visualizar todas as palavras-chave numéricas solicitando a
LC_NUMERIC
categoria :Se for um
zsh
script de shell, você pode usar a$langinfo
matriz associativa especial nozsh/langinfo
módulo:(que mapeia para o padrão
nl_langinfo(RADIXCHAR)
, vejaman nl_langinfo
em seu sistema para detalhes;$langinfo[THOUSEP]
para o separador de milhar).Em um
bash
script (também funcionaria emzsh
), você deve ser capaz de obtê-lo sem bifurcar um processo separado usando oprintf
built-in:Para converter um número do formato de localidade do usuário para o formato de localidade C, com o shell ksh93, você pode fazer assim: