假设我有一个字符串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'

此外,zshbashecho中本机支持这一点:

echo -e '\x5a'

Linux相关问答推荐

在PowerShell for Linux上,打印出的maven命令还有其他字符

为什么在Linux上STD::SLEEP_FOR(STD::Chrono::Hors::Max())会立即返回?

我想显示包含一个方括号的行,方括号可以是开括号,也可以是闭括号.

计算与文件第一列对应的第二列中的字符串出现次数

不带空格的字符串连接形成文件路径

如果列小于 X,linux 合并行

为什么要命令; ls -l file_doesnot_exists > /dev/null 2>&1 正在工作; ls -l 2>&1 file_doesnot_exists > /dev/null 不是

在 bash 中解析变量

文件未在脚本中使用 cp 命令复制到 Docker 容器中

在 Windows 上通过 SSH 运行 django 应用程序

Linux 如何将主机文件作为用户的输入并将其调用到脚本中

为什么 8 位字符串文字可以包含多字节字符,而 char 向量不能?

如何使用完整路径或文件名显示 grep 结果

bash 中的sed命令

使用 C/C++ (GCC/G++) 在 Linux 中的套接字编程中发送和接收文件

任何方式以编程方式在android上运行shell命令?

Linux 的 TextMate 替代品

将标准输出作为命令行工具的文件名传递?

如何获取 GNU Makefile 中使用的 shell 命令的退出状态?

如何在 linux 中使用 CMake 和 Kdevelop 编译 GLUT + OpenGL 项目?