gpt4 book ai didi

perl - 二进制sed替换

转载 作者:行者123 更新时间:2023-12-03 23:38:27 25 4
gpt4 key购买 nike

我试图在二进制文件中进行sed替换,但是我开始认为这是不可能的。从本质上讲,我想做的事情类似于以下内容:

sed -bi "s/\(\xFF\xD8[[:xdigit:]]\{1,\}\xFF\xD9\)/\1/" file.jpg


我希望实现的逻辑是:扫描二进制文件,直到十六进制代码 FFD8,继续读取直到 FFD9,并仅保存它们之间的内容(在处理之前和之后丢弃垃圾,但包括 FFD8和< cc>作为文件的保存部分)

有什么好方法吗?即使不使用 FFD9

编辑:我只是在玩耍,发现做IMO的最干净的方法。我知道此grep语句会表现得很贪心。

hexdump -ve '1/1 "%.2x"' dirty.jpg | grep -o "ffd8.*ffd9" | xxd -r -p > clean.jpg

最佳答案

bbe是“用于二进制文件的文件”,对于大型二进制文件,它应比十六进制转储/重构更有效。

其用法示例:

$ bbe -e 's/original/replaced/' infile > outfile


有关 man page的更多信息。

关于perl - 二进制sed替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2604964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com