本文介绍了如何在 Linux shell 中将十六进制转换为 ASCII 字符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我有一个字符串 5a
.
Lets say that I have a string 5a
.
这是 ASCII 字母 Z
的十六进制表示.
This is the hex representation of the ASCII letter Z
.
我需要知道一个 Linux shell 命令,它将接受一个十六进制字符串并输出该字符串所代表的 ASCII 字符.
I need to know a Linux shell command which will take a hex string and output the ASCII characters that the string represents.
如果我这样做:
echo 5a | command_im_looking_for
我会看到一个单独的字母Z
:
I will see a solitary letter Z
:
Z
推荐答案
echo -n 5a | perl -pe 's/([0-9a-f]{2})/chr hex $1/gie'
请注意,这不会跳过非十六进制字符.如果您只想要十六进制(原始字符串中没有空格等):
Note that this won't skip non-hex characters. If you want just the hex (no whitespace from the original string etc):
echo 5a | perl -ne 's/([0-9a-f]{2})/print chr hex $1/gie'
此外,zsh
和 bash
在 echo
中原生支持:
Also, zsh
and bash
support this natively in echo
:
echo -e 'x5a'
这篇关于如何在 Linux shell 中将十六进制转换为 ASCII 字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!