В моем .bash_profile
есть следующее:
command -v ascii &> /dev/null || function ascii { awk 'BEGIN {for (i = 32; i < 127; i++) printf "%3d 0x%02x %c\n", i, i, i}' | pr -t6 -w78; }
Я знаю, что это на самом деле не отвечает на ваш вопрос, особенно потому что в нем не указывается восьмеричное представление, но оно весьма полезно.
Обратите внимание, что символы с кодами от 0 до 31 и 127 являются управляющими символами, поэтому отображать их нет смысла.
В любом случае, чтобы соответствовать формату вашего примера (который отличается от формата вашей попытки), кажется, что вам нужно следующее:
awk 'BEGIN {print "Value Oct Dec Hex"; for (i = 32; i < 127; i++) printf "%c %03o %-3d %02x\n", i, i, i, i}'
Вы можете изменить диапазон for
, чтобы также отображать управляющие символы, но вы быстро увидите, что дополнительный вывод не очень полезен.