Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> awk - разделитель десятичных чисел при выводе? Он почему-то является запятой.... 
V
    Опции темы
d2e8k
Дата 20.9.2005, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.9.2005

Репутация: нет
Всего: нет



Добрый день!
Вот такая проблемка -
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
PM MAIL   Вверх
DENNN
Дата 20.9.2005, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 3
Всего: 43



Могу предложить через sed заменять запятые на точки.

PM ICQ   Вверх
setq
Дата 20.9.2005, 13:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











обязательно использовать именно awk?
  Вверх
d2e8k
Дата 20.9.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 20.9.2005

Репутация: нет
Всего: нет



Спасибо! sed помог
PM MAIL   Вверх
Бонифаций
Дата 20.9.2005, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 9
Всего: 40



Цитата(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

похоже для формирования десятичного разделителя awk использует установки locale , а locale у вас наверное русское. smile поэтому по правилам русской локали десятичным разделителем является запятая а не точка.

В частности я бы попробовал запустить так:

Код


LC_NUMERIC=С вашапрограмма



и посмотрел что получится.



--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1417 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.