Форум — Admin awk - help 0 0 Как в awk сделать, что бы выводилось не более 4 знаков после запятой. Сейчас выдает так 0.145465 Ссылка
~$ awk 'BEGIN {OFMT="%.4f"; print 12.3456789012 }' 12.3457 Uncle_Theodore ★★ (06.09.08 23:38:41 MSK) Показать ответ Ссылка
Ответ на: комментарий от Uncle_Theodore 06.09.08 23:38:41 MSK если напишешь: $ echo "12.3456789012" | awk 'BEGIN {OFMT="%.4f"}; {print $1 }' то не сработает. Лучше исп. printf и конкретно прописывать форматирование в момент вывода, а не глобально. sdio ★★★★★ (07.09.08 00:17:51 MSK) Показать ответ Ссылка
printf'ом. Емнип ему даже можно передавать параметры через переменные. marsijanin ★★ (07.09.08 00:22:16 MSK) Показать ответ Ссылка
Ответ на: комментарий от marsijanin 07.09.08 00:22:16 MSK Ну да, можно и так. echo "1.23456789012" | awk '{printf "%.4f\n", $1}' Uncle_Theodore ★★ (07.09.08 00:33:20 MSK) Показать ответ Ссылка
Ответ на: комментарий от sdio 07.09.08 00:17:51 MSK >$ echo "12.3456789012" | awk 'BEGIN {OFMT="%.4f"}; {print $1 }' Интересно, почему этот вариант не работает? Вроде бы все верно ... anonymous (07.09.08 12:10:38 MSK) Показать ответ Ссылка
Ответ на: комментарий от anonymous 07.09.08 12:10:38 MSK $1 -- строка, а не число sdio ★★★★★ (07.09.08 12:36:57 MSK) Ссылка
Ответ на: комментарий от Uncle_Theodore 07.09.08 00:33:20 MSK Мну имел в виду, что параметры для printf'а можно брать из переменных: echo 1 2 f 3.456789 | awk '{printf "%"$1"."$2""$3"\n", $4}' 3.46 marsijanin ★★ (07.09.08 13:25:46 MSK) Ссылка