Điều này hoạt động (với giá trị bằng bát phân):
$ printf '%b' '\101'
A
ngay cả đối với (một số: không vượt quá 7) chuỗi:
$ printf '%b' '\'{101..107}
ABCDEFG
Một cấu trúc chung cho phép các giá trị (thập phân) trong bất kỳ phạm vi nào là:
$ printf '%b' $(printf '\\%03o' {65..122})
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz
Hoặc bạn có thể sử dụng các giá trị hex của các ký tự:
$ printf '%b' $(printf '\\x%x' {65..122})
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz
Bạn cũng có thể lấy lại ký tự bằng xxd (sử dụng các giá trị thập lục phân):
$ echo "41" | xxd -p -r
A
Đó là, một hành động là mặt trái của hành động kia:
$ printf "%x" "'A" | xxd -p -r
A
Và cũng hoạt động với nhiều giá trị hex cùng một lúc:
$ echo "41 42 43 44 45 46 47 48 49 4a" | xxd -p -r
ABCDEFGHIJ
hoặc các chuỗi (printf được sử dụng ở đây để nhận các giá trị hex):
$ printf '%x' {65..90} | xxd -r -p
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Hoặc thậm chí sử dụng awk:
$ echo 65 | awk '{printf("%c",$1)}'
A
ngay cả đối với các chuỗi:
$ seq 65 90 | awk '{printf("%c",$1)}'
ABCDEFGHIJKLMNOPQRSTUVWXYZ