miércoles, 5 de junio de 2013

Imprimir separador de miles en bash

Tiempo atrás estuve buscando una forma de imprimir en bash números decimales con el separador de miles y gasté algo de tiempo buscando en foros y probando hasta que di con una forma sencilla de hacerlo. Es muy práctico para scripts que muestran valores numéricos en pantalla o vía e-mail.

Acá la explicación con ejemplos sencillos:

Primero agregamos un valor a la variable myvar para poder probar.
roko@MinasTirith:~$ myvar=1234567890

Ejemplo 1: Usamos la función printf (más info: man printf) para imprimir el contenido de myvar con el símbolo $ delante y con dos posiciones decimales:
roko@MinasTirith:~$ printf "$%'.2f\n" $myvar
$1,234,567,890.00

Ejemplo 2: Imprimir el contenido de la variable sin el símbolo de pesos y sin decimales:
roko@MinasTirith:~$ printf "%'.0f\n" $myvar
1,234,567,890

Ejemplo 3: Cambiamos el valor de myvar para tener un número más "real" con decimales:
roko@MinasTirith:~$ myvar=1234567890.89

e imprimimos anteponiendo el símbolo $ y los dos decimales
roko@MinasTirith:~$ printf "$%'.2f\n" $myvar
$1,234,567,890.89 


Notas:

  • El valor 2f usado en printf define la cantidad de decimales a imprimir.
  • \n agrega un fin de línea a la impresión.


¡ Espero les sea útil !

No hay comentarios.: