Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как преобразовать строку в число?

14K
30 октября 2005 года
kotyara
3 / / 30.10.2005
С помощью awk извлек строку, содержащую одно единственное число. Как теперь это число (строку) додать к настоящему числу? В shell, конечно. Си не катит.
2.1K
30 октября 2005 года
ksicom
38 / / 11.09.2003
Цитата:
Originally posted by kotyara
Как теперь это число (строку) додать к настоящему числу?


Если можно, поясни более точно, какое значение ты вкладываешь в слово "додать"?

Вообще простые мат. функции в bash выполняются программой expr.

man expr

т. е. к примеру:
x=`awk ....`;
y=`expr $x + 3`;

Кстати в самом awk можно тоже выполнять арифметические действия:
awk '{print $1/1024}' x.txt;

Ещё можешь посмотреть функцию форматированного вывода awk:
printf

14K
30 октября 2005 года
kotyara
3 / / 30.10.2005
Дело вот в чем: awk считывает из текстового файла строку, содержащую одно число. Потом мне надо приплюсовать к этому числу-строке целое число, содержащееся в другой переменной. Но проблема в том, что awk возвращает строковое значение и я не могу добавить строку к числу. Вот мне-то и надо преобразовать строку-число в целое число!
2.1K
31 октября 2005 года
ksicom
38 / / 11.09.2003
Цитата:
Originally posted by kotyara
Дело вот в чем: awk считывает из текстового файла строку, содержащую одно число. Потом мне надо приплюсовать к этому числу-строке целое число, содержащееся в другой переменной. Но проблема в том, что awk возвращает строковое значение и я не могу добавить строку к числу. Вот мне-то и надо преобразовать строку-число в целое число!



Вообще-то (да поправят меня люди более умные) , в переменных shell овских скриптов (читай переменных окружения) всегда хранятся только текстовые строки.
Т. е. если ты пишешь
a="3.456";
то это значит, что в переменную окружения "a" записывается текстовое значение "3.456\0"
А дальше утилиты типа awk, expr и т. д. сами автоматически или по заданному тобой формату производят преобразование строк в числа, выполняют какие-то действия с ними, результирующее значение преобразуют в строку и записывают в стандартный поток вывода (или куда перенаправишь).
Поэтому то что выдаёт awk (текстовую строку) можешь смело подавать на вход expr.

А вообще выложи скрипт и сообщения об ошибках, которые выдаёт скрипт при исполнении.

14K
31 октября 2005 года
kotyara
3 / / 30.10.2005
Спасибо, я уже разобрался с помощью
$result=$[$a+$b]
2
01 ноября 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by kotyara
Спасибо, я уже разобрался с помощью
$result=$[$a+$b]



тоже вариант. но я бы рекомендовал

 
Код:
result=`expr $a + $b`

так нагляднее.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог