msgbartop
msgbarbottom

09 déc 08 awk et LC_NUMERIC

Je me suis bien tiré les cheveux avec le awk de mon Mac Intel (sous Leopard):

des opérations mathématiques simples sur des colonnes d’un fichier me donnaient

des résultats complètement aberrants. 

De même je me suis aperçu que:

echo "1.23456" |awk '{print -$1}''
-1

et que

echo "1,23456" |awk '{print -$1}'
-1,23456

 

En cherchant pas mal sur le web j’ai trouvé que la faute venait de la variable LC_NUMERIC.

locale | grep LC_NUMERIC
LC_NUMERIC="fr_FR.UTF-8"

 

En changeant cette variable par export LC_NUMERIC=C  les résultats étaient complètement différents:

 

echo "1.23456" |awk '{print -$1}'
-1.23456

et 

echo "1,23456" |awk '{print -$1}'
-1

Ce qui a résolu mes problèmes d’opérations mathématiques  (j’ai donc exporter LC_NUMERIC=C dans mon .profile).

 

PS: Cela dit en passant la réponse  -1 donnée,  faudrait m’expliquer …

Tags: , ,

Switch to our mobile site