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

如何在Shell变量中使用ANSI-C引用?BusyBox Sed十六进制替换问题

BusyBox sed中结合Shell变量实现十六进制替换的问题与解决

问题场景

在BusyBox v1.32.1(2022-03-05 22:56:19 CET)多调用二进制环境中执行sed十六进制替换时,遇到如下情况:

  • 常规Linux环境下正常运行的命令,在BusyBox sed中无效:
HEXCODE=34
sed "s/\xa1\xb2/\x12\x$HEXCODE/g" < file.bin > file2.bin
  • 使用硬编码ANSI转义序列的命令可正常执行:
sed $'s/\xa1\xb2/\x12\x34/g' < file.bin > file2.bin
  • 尝试结合Shell变量HEXCODE使用ANSI转义格式时,命令无法生效:
HEXCODE=34
sed $'s/\xa1\xb2/\x12\x$HEXCODE/g' < file.bin > file2.bin

解决方案

通过eval命令实现变量替换与ANSI转义序列的解析,以下命令可正常工作:

HEXCODE=34
eval sed "\$'s/\xa1\xb2/\x12\x$HEXCODE/g'" < file.bin > file2.bin

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:30:50