如何在Linux Shell中将十六进制转换为ASCII字符?
可以说我有一个字符串5a
。
这是ASCII字母的十六进制表示Z
。
我需要知道一个Linux shell命令,该命令将接受一个十六进制字符串并输出该字符串表示的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'
以上是 如何在Linux Shell中将十六进制转换为ASCII字符? 的全部内容, 来源链接: utcz.com/qa/431682.html