| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > *NIX системы: Общие вопросы > awk - разделитель десятичных чисел при выводе? |
| Автор: d2e8k 20.9.2005, 12:01 |
| Добрый день! Вот такая проблемка - awk -v a=.5 -v b=.7 'BEGIN {print a+b}' - в этом случае будет выведено "1,2" (именно с разделителем запятой! ) Если этот результат (через sh-переменную) использовать в следующем awk - скрипте , то уже получится ерунда: awk -v a=.5 b=1, 2 'BEGIN {print a+b}' получим "1,5"... Как я понимаю, awk второе значение ("1,2") считает строкой, преобразовывает в число (1), а уже после складывает. Вопрос в том, как заставить его выводить десятичные числа с разделителем точкой, а не запятой, т.е. чтобы в первом примере вывелось "1.2"? ОС - Alt Linux Compact 2.3 |
| Автор: DENNN 20.9.2005, 13:09 |
| Могу предложить через sed заменять запятые на точки. |
| Автор: setq 20.9.2005, 13:31 |
| обязательно использовать именно awk? |
| Автор: d2e8k 20.9.2005, 15:04 |
| Спасибо! sed помог |
| Автор: Бонифаций 20.9.2005, 15:15 | ||||
похоже для формирования десятичного разделителя awk использует установки locale , а locale у вас наверное русское. В частности я бы попробовал запустить так:
и посмотрел что получится. |