使用没有 sed 的 shell 替换二进制文件中的十六进制

使用没有 sed 的 shell 替换二进制文件中的十六进制

我有一个二进制文件,我想用 shell 脚本替换0xaa,0xbb,0xcc,0xdd0x11,0x22,0x33,0x44

我可以0xaa,0xbb,0xcc,0xdd进入类似的 shell 脚本$1,但是如何在0x11,0x22,0x33,0x44没有 sed 的情况下替换它?

谢谢

答案1

也许 bash 索引数组会有所帮助:

#!/usr/bin/env bash
set -e

my_hex=(0xaa 0xbb 0xcc 0xdd)
my_new_hex=(0x11 0x22 0x33 0x44)

# exchange values
for i in $(seq 1 "${#my_hex[@]}")
do
        my_hex["$i" - 1]=${my_new_hex[$i - 1]}
        echo "${my_hex[$i - 1]}"
done

相关内容