编辑文件并用 Bash 脚本替换十六进制值

问题描述 投票:0回答:1

我有几个较大的文件(400-800MiB),我需要将其中的十六进制值转换为其他值。 我可以在某些十六进制编辑器中执行此操作,但我想在 Bash 脚本中自动执行此操作。

我知道如何使用 xxd 检查给定值是否在文件中:

FILE='file.vpk'
SEARCH_STRING='MaxRagdollCount'
OLD_HEX_VALUE="$( echo -n "$SEARCH_STRING" | xxd -p )"
HEX_VALUE=($( xxd -p "$FILE" | grep -E -o "${OLD_HEX_VALUE}222022[0-9]{,2}22" ))
echo "$HEX_VALUE"

但我不知道如何编辑它。

我需要替换

的值

MaxRagdollCount" "any_number"

(4d6178526167646f6c6c436f756e742220223222)

最大布娃娃计数”“9”

(4d6178526167646f6c6c436f756e742220223922)。

linux bash hex
1个回答
0
投票

我问chatgpt:

In bash how do I replace the value of

4d6178526167646f6c6c436f756e742220223222

with

4d6178526167646f6c6c436f756e742220223922

建议正确使用 sed:(-i 就地编辑文件,最后的 /g 使其编辑所有出现的情况。)

sed -i 's/4d6178526167646f6c6c436f756e742220223222/4d6178526167646f6c6c436f756e742220223922/g' your_file.txt
© www.soinside.com 2019 - 2024. All rights reserved.