可以说我有一个字符串5a。
5a
这是ASCII字母的十六进制表示Z。
Z
我需要知道一个Linux shell命令,该命令将接受一个十六进制字符串并输出该字符串表示的ASCII字符。
因此,如果我这样做:
echo 5a | command_im_looking_for
我会看到一封单独的信Z:
echo -n 5a | perl -pe 's/([0-9a-f]{2})/chr hex $1/gie'
请注意,这不会跳过非十六进制字符。如果只需要十六进制(原始字符串中没有空格等):
echo 5a | perl -ne 's/([0-9a-f]{2})/print chr hex $1/gie'
此外,zsh并bash在echo以下方面提供本机支持:
zsh
bash
echo
echo -e '\x5a'