【发布时间】:2017-01-29 02:25:32
【问题描述】:
POSIX Awk 说:
printf 语句应基于类似于 File Format Notation 用于描述本卷中的文件格式 POSIX.1-2008(参见 XBD 文件格式表示法)。
而File Format Notation 定义了%a:
表示浮点数的浮点数参数应 以“[-]0xh.hhhhp±d”样式转换 [...]
但是 Gawk 和 Mawk 都不支持:
$ gawk 'BEGIN {printf "%a", 1}'
%a
$ mawk 'BEGIN {printf "%a", 1}'
mawk: run time error: improper conversion(number 1) in printf("%a")
这是为什么?
【问题讨论】:
-
最佳猜测:
based on a notation similar to!=identical to。 -
如果我尝试使用 POSIX awk,我会得到
weird printf conversion %a在 POSIX awk 版本下,您是否得到了您期望的输出? -
@dawg 也许我不清楚:POSIX Awk 是标准定义的 Awk,不一定是任何一种实现。似乎没有任何实现符合 POSIX 对
%a的响应,或者我可能误读了标准 -
根据 Gnu Awk 用户指南:gnu.org/software/gawk/manual/html_node/… %a 不是受支持的格式字符。
标签: awk printf posix gawk mawk