Problemas con AWK, valores reales y locales
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
loading...

loading...
Thanks for the useful info. It’s so interesting
loading...
Gracias. Me has salvado la vida. Llevo loco dos días.