【问题标题】: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
    

    这获得了领先的部分。我想你知道如何处理离开的员工

    【讨论】:

      猜你喜欢
      • 2011-02-28
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      相关资源
      最近更新 更多