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

如何在Bash中将字符串转换为指定格式的自定义十六进制表示

Bash实现字符转指定格式十六进制编码方案

方案1:管道流式处理(适合处理大文本/管道输入)

你现有的od命令已经能输出空格分隔的单字节十六进制值,只需要追加awk处理即可:

echo -n "AaAa" | od -A n -t x1 | awk '{for(i=1;i<=NF;i++) printf "%%<%s>", $i}'

命令说明:

  • od -A n -t x1:不输出地址偏移,按单字节输出小写十六进制值
  • awk遍历所有输出字段,每个字段按%<xx>格式格式化输出,%%是转义输出%符号

方案2:纯Bash实现(适合短字符串处理,无外部依赖)

# 替换为你要处理的字符串
input_str="AaAa"
output_str=""
for ((i=0; i<${#input_str}; i++)); do
    # 取单个字符
    c=${input_str:i:1}
    # 转两位十六进制
    hex_val=$(printf "%02x" "'$c")
    # 拼接结果
    output_str+="%<$hex_val>"
done
echo "$output_str"

逻辑对应你的需求步骤:

  • 遍历字符串索引取单个字符,完成字符拆分
  • 利用printf内置特性,单引号开头的字符参数会返回ASCII值,转成两位十六进制
  • 拼接时直接包裹%<和>后缀
  • 循环结束得到完整拼接后的结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 11:30:05