假设我有一个字符串5a
.
这是ASCII字母Z
的十六进制表示形式.
我需要知道一个Linuxshell命令,它将接受一个十六进制字符串,并输出该字符串所代表的ASCII字符.
因此,如果我这样做:
echo 5a | command_im_looking_for
我将看到一封单独的信Z
:
Z
假设我有一个字符串5a
.
这是ASCII字母Z
的十六进制表示形式.
我需要知道一个Linuxshell命令,它将接受一个十六进制字符串,并输出该字符串所代表的ASCII字符.
因此,如果我这样做:
echo 5a | command_im_looking_for
我将看到一封单独的信Z
:
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
中本机支持这一点:
echo -e '\x5a'