Це працює (зі значенням в восьмеричній):
$ printf '%b' '\101'
A
навіть для (деяких: не переходьте більше 7) послідовностей:
$ printf '%b' '\'{101..107}
ABCDEFG
Загальною конструкцією, яка допускає (десяткові) значення в будь-якому діапазоні, є:
$ printf '%b' $(printf '\\%03o' {65..122})
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz
Або ви можете використовувати шістнадцяткові значення символів:
$ printf '%b' $(printf '\\x%x' {65..122})
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz
Ви також можете повернути символ за допомогою xxd (використовуйте шістнадцяткові значення):
$ echo "41" | xxd -p -r
A
Тобто одна дія є зворотною від іншої:
$ printf "%x" "'A" | xxd -p -r
A
А також працює з декількома шістнадцятковими значеннями одночасно:
$ echo "41 42 43 44 45 46 47 48 49 4a" | xxd -p -r
ABCDEFGHIJ
або послідовності (тут використовується printf для отримання шістнадцяткових значень):
$ printf '%x' {65..90} | xxd -r -p
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Або навіть використовувати awk:
$ echo 65 | awk '{printf("%c",$1)}'
A
навіть для послідовностей:
$ seq 65 90 | awk '{printf("%c",$1)}'
ABCDEFGHIJKLMNOPQRSTUVWXYZ