Inicio > Resolución problemas, Terminal > Problemas con AWK, valores reales y locales

Problemas con AWK, valores reales y locales

Martes, 26 de mayo de 2009 Dejar un comentario Ir a comentarios

terminal-icon

Menudo mosqueo que me he pillado hoy con awk. Todo lo que os explico a continuación viene dado porque al ejecutar un script que ya había comprobado que funcionaba en el ordenador del trabajo, este no me funcionaba correctamente en mi pc. Después de un par de horas peleándome (son varios scripts de cierta entidad relacionados entre si) a ver que cipote estaba ocurriendo me he dado cuenta de que AWK no me era capaz de sumar un par de valores reales, más concretamente se quedaba con la parte entera del número pero descartaba la parte decimal.

Una vez que he localizado el problema, resolverlo ha sido cuestión de googlear un poco. En esta página una persona envío un bug hace casi tres años comentando más o menos lo que os vengo comentando. Uno de los administradores comenta que este problema se da porque al utilizar los locales españoles, el separador que se utiliza para separar la parte entera de la decimal en números reales es la coma(,) en vez del punto(.). Así que si os encontráis con este tipo de problemas podéis solucionarlos fácilmente exportando la variable LC_ALL con el valor C. Podéis hacer esto en cada comando awk que ejecutéis:

LC_ALL=C awk -f .... FILE

O añadir la siguiente línea en vuestro fichero ~/.bashrc

export LC_ALL=C

GD Star Rating
loading...
Problemas con AWK, valores reales y locales, 10.0 out of 10 based on 1 rating
Share
  1. BobMarche
    Miércoles, 10 de junio de 2009 a las 21:54 | #1
    GD Star Rating
    loading...

    Thanks for the useful info. It’s so interesting

  2. Juan Rueda
    Viernes, 11 de mayo de 2012 a las 12:06 | #2
    GD Star Rating
    loading...

    Gracias. Me has salvado la vida. Llevo loco dos días.

  1. Sin trackbacks aún.