GNU awk 4.1
awk -niord '$0=chr("0x"RT)' RS=.. ORS=
Обратите внимание, что если вы откликнетесь на это, он выдаст дополнительный нулевой байт
$ echo 595a | awk -niord '$0=chr("0x"RT)' RS=.. ORS= | od -tx1c
0000000 59 5a 00
Y Z \0
Вместо этого используйте printf
$ printf 595a | awk -niord '$0=chr("0x"RT)' RS=.. ORS= | od -tx1c
0000000 59 5a
Y Z
Также обратите внимание, что GNU awk выдает UTF-8 по умолчанию
$ printf a1 | awk -niord '$0=chr("0x"RT)' RS=.. ORS= | od -tx1
0000000 c2 a1
Если вы имеете дело с персонажами вне ASCII, и вы собираетесь
Base64 кодируя результирующую строку, вы можете отключить UTF-8 с помощью -b
echo 5a | sha256sum | awk -bniord 'RT~/\w/,$0=chr("0x"RT)' RS=.. ORS=