【问题标题】:How to change file header in terminal如何在终端中更改文件头
【发布时间】:2019-09-28 20:50:34
【问题描述】:

我有一个应该是 png 的文件,但它的签名不正确,因此无法打开。它的签名应该是 8950 4e47 0d0a 1a0a 但它是 8965 4e34 0d0a b0aa 这使它成为一个 .eN4 文件。有什么办法可以在终端纠正这个问题?

【问题讨论】:

  • 为什么专门在终端?最简单的方法是使用十六进制编辑器应用程序。
  • @Alok 不是那个问题的骗子
  • 好的,你从哪里得到的?是什么应用创建的?你怎么知道是eN4?它是否与PNG文件兼容?为什么不直接从普通 PNG 文件中取出前 8 个字节并使用 dd 替换它们?

标签: macos unix terminal


【解决方案1】:

您可以使用xxd 来执行此操作。

我有一个 Vim 映射,但你也可以完全使用 xxd 和你最喜欢的编辑器来完成它:

xxd <bad_file >hexdump

现在使用您最喜欢的编辑器编辑hexdump。编辑十六进制部分很重要,而不是右侧的 ASCII 列,这仅供参考。完成后,保存文件并执行:

xxd -r <hexdump >good_file

我猜你可以一口气完成:

xxd <bad_file | sed '1 s/8950 4e47 0d0a 1a0a/8965 4e34 0d0a b0aa/` | xxd -r >good_file

【讨论】:

    猜你喜欢
    • 2022-12-15
    • 1970-01-01
    • 2015-11-01
    • 2016-03-30
    • 2021-08-13
    • 1970-01-01
    • 2015-12-05
    • 2019-03-13
    • 1970-01-01
    相关资源
    最近更新 更多