printf 语句应基于类似于 POSIX.1-2008 卷中用于描述文件格式的文件格式表示法(参见 XBD 文件格式表示法)的表示法产生输出。
文件格式符号定义:%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")
为什么是这样?