LINUX.ORG.RU

[mksh][надули] Обрезание не умеет что ли?


0

1
printf "%.3f\n" "23.5469"
printf: %.3f: invalid directive

Округление не работает. По всем shell'ам пробежался - они умеют. Баг или чего? Урезали бздуны shell, циклы в стиле СИ не умеет. Да и нужно ли оно?



Последнее исправление: Gordy (всего исправлений: 2)

Ответ на: комментарий от x3al

На счет awk. Каковы возможности это потокового редактора? Выделение столбцов - раз, мат. вычисления - два, циклы - три, что еще?

Gordy
() автор топика
Ответ на: комментарий от Gordy

Это — язык программирования, в общем-то. С ним можно выкинуть почти всё остальное. Как и с перлом/питоном, в общем-то, только он не general-purpose. Но для обработки текстов хватает.

Удобно матчить что-то в потоке и выполнять код, к примеру. Т.е. типичный юзкейс — опционально сделать инициализацию, дальше матчить определённые строки по регэкспу (либо любые) и выполнять определённый код, в конце можно опять же выполнить что-то.

x3al ★★★★★
()

You left IRC just when I was going to answer you… so here, then.

If you have a printf builtin, which is not normally part of mksh,
and not formally, then it cannot possibly do any floating point
operations, because they aren’t allowed in mksh. Currently, the
only major packaging of mksh including a printf builtin is Debian,
due to a crow not picking out another’s…

You can always call the external printf:

tg@frozenfish:~ $ printf «%.3f\n» «23.5469»
printf: %.3f: invalid directive
1|tg@frozenfish:~ $ /usr/bin/printf «%.3f\n» «23.5469»
23.547
tg@frozenfish:~ $ $(whence -p printf) «%.3f\n» «23.5469»
23.547
tg@frozenfish:~ $ alias printf=$(whence -p printf)
tg@frozenfish:~ $ printf «%.3f\n» «23.5469»
23.547

mirabilos
()
Ответ на: комментарий от Gordy

awk хорош для парсинга и анализа больших объёмов текста с разделителями. Логи и awk - созданы друг для друга
sed - для инлайн редактирования разных конфигов

zolden ★★★★★
()
Ответ на: комментарий от zolden

Слышь, а теперь работает. Этот чувачок подсказал. Заходил на irc, там никто не ответил.

calculon@debian:~$ printf "%.3f\n" "23.5469"                                   
23.547

Gordy
() автор топика
Ответ на: комментарий от AptGet

Намекал мне тут, чё не мог прямо сказать?

Gordy
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.