POSIX Awk говорит:% спецификатор преобразования не признал
Оператор Printf должен производить вывод на основе нотации похож на формат нотации файлов, используемый для описания форматов файлов в этом объеме POSIX.1-2008 (см. Обозначение формата файла XBD).
И File Format Notation определяет %a
:
Число аргументов с плавающей точкой, представляющий число с плавающей точкой должен быть преобразован в стиле «[-] 0xh.hhhhp ± д» [... ]
Однако ни Gawk ни Mawk поддерживают это:
$ gawk 'BEGIN {printf "%a", 1}'
%a
$ mawk 'BEGIN {printf "%a", 1}'
mawk: run time error: improper conversion(number 1) in printf("%a")
Почему это?
Лучшее предположение: 'на основе обозначения подобной в' =' идентичную в'. –
Если я пытаюсь использовать POSIX awk, я получаю 'weird printf conversion% a' Получаете ли вы результат, ожидаемый в версии POSIX awk? – dawg
@ dawg, возможно, я не понимаю: POSIX Awk - это Awk, как определено стандартом, а не обязательно какой-либо одной реализацией. Похоже, что никакая реализация не соответствует POSIX с respsect на '% a', или, может быть, я неправильно читаю стандарт –