Dies funktioniert (mit dem Wert in Oktal):
$ printf '%b' '\101'
A
sogar für (einige: gehen Sie nicht über 7) Sequenzen:
$ printf '%b' '\'{101..107}
ABCDEFG
Ein allgemeines Konstrukt, das (Dezimal-) Werte in einem beliebigen Bereich zulässt, ist:
$ printf '%b' $(printf '\\%03o' {65..122})
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz
Oder Sie können die Hex-Werte der Zeichen verwenden:
$ printf '%b' $(printf '\\x%x' {65..122})
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz
Sie können das Zeichen auch mit xxd zurückerhalten (verwenden Sie hexadezimale Werte):
$ echo "41" | xxd -p -r
A
Das heißt, eine Aktion ist die Umkehrung der anderen:
$ printf "%x" "'A" | xxd -p -r
A
Und funktioniert auch mit mehreren Hex-Werten gleichzeitig:
$ echo "41 42 43 44 45 46 47 48 49 4a" | xxd -p -r
ABCDEFGHIJ
oder Sequenzen (printf wird hier verwendet, um Hex-Werte zu erhalten):
$ printf '%x' {65..90} | xxd -r -p
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Oder benutze sogar awk:
$ echo 65 | awk '{printf("%c",$1)}'
A
auch für Sequenzen:
$ seq 65 90 | awk '{printf("%c",$1)}'
ABCDEFGHIJKLMNOPQRSTUVWXYZ