在 Unix shell 脚本中将 ASCII 代码转换为十六进制
我想将 ASCII 代码(如 -
、_
、.
等)转换为 Unix shell 中的 > 十六进制 表示形式(没有 bc 命令)。例如,-
=> %2d
。
我该怎么做呢?
I'd like to convert ASCII code (like -
, _
, .
, etc.) in hexadecimal representation in Unix shell (without bc command). For example, -
=> %2d
.
How can I do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这适用于 Bash、Dash (sh)、ksh、zsh 和 ash,并且仅使用内置函数:
编辑:
这是一个以十六进制和 chr 输出并接受十六进制输入的 ord 版本:
原始十进制版本:
示例(添加换行符):
这是相应的
chr
:示例:
This works in Bash, Dash (sh), ksh, zsh and ash and uses only builtins:
Edit:
Here is a version of ord that outputs in hex and chr that accepts hex input:
The original decimal versions:
Examples (with added newlines):
Here is the corresponding
chr
:Examples:
或
我同意这不是最好的单行,但在看到基于 Perl 的答案后我无法抗拒。
or
I agree that it's not the nicest one-liner, but I couldn't resist after seeing the Perl based answer .
以下内容适用于我正在使用的 ksh 版本:
The following works in the ksh version I'm using: