【问题标题】:removes bytes within file when binary string is found找到二进制字符串时删除文件中的字节
【发布时间】:2013-12-18 23:34:34
【问题描述】:
所以当我遇到某个二进制字符串值时,我想删除二进制文件中的部分(不是在开头或结尾,否则我会使用 dd)。即:
- 如果找到 FF FB FF FB A4,则在此处删除第二个 FF FB 之前的 2048 个字节(即删除第一个 FF FB 以及它之前的 2046 个字节)
重复到文件末尾。(无需测试/防止“吃掉自己”,字符串出现的范围总是远大于 2048)
如何在 bash 中做到这一点?
提前致谢
【问题讨论】:
标签:
string
bash
search
ubuntu
binary
【解决方案1】:
你可以用grep找到“FF FB FF FB A4”,然后用dd剪切文件:
pos=$(grep --only-matching --byte-offset --binary --text --perl-regexp "\xFF\xFB\xFF\xFB\xA4" filename|head -1|cut -d ':' -f1)
它会告诉你字符串在哪里。
dd if=filename of=output bs=1 ibs=1 count=$pos
这获得了领先的部分。我想你知道如何处理离开的员工