You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Unix命令行工具将十进制数文件转回ASCII文本?

如何将ASCII十进制数列表转换回文本(反向od操作)?

我可以用以下命令将文本转换为ASCII十进制数列表:

$ echo "hello" | od -An -td1 -v -w1
  104
  101
  108
  108
  111
   10

请问对应的反向操作是什么?如何仅使用常见的Unix命令行工具将十进制数文件转换回文本?我尝试过printf工具,但尚未找到可行的实现方法。


方法1:用awk直接转换

这是最简洁的方式,awk能直接读取每行的十进制数并输出对应ASCII字符:

awk '{printf "%c", $1}' decimals.txt

把decimals.txt换成你的十进制数文件名即可,它会逐行读取数字,转成字符后拼接输出。

方法2:printf配合xargs

如果想用printf实现,可以借助xargs把每行的数字传给printf:

xargs -I{} printf "\\x$(printf %x {})" < decimals.txt

原理是先把十进制数转成十六进制,再用\x转义序列让printf输出对应字符。如果数字没有多余空格,也可以简化成:

xargs printf "%b" < decimals.txt

方法3:sed+bash组合

用sed把每行数字包装成printf命令,再交给bash执行:

sed 's/^/printf "\\x%x" /' decimals.txt | bash

sed会给每行数字添加printf "\\x%x"前缀,bash执行这些命令后就会输出对应的文本。


内容的提问来源于stack exchange,提问作者user448810

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 21:22:38