如何使用 sed 复制十六进制格式的行?

How to copy lines of hexadecimal format using sed?

我有一个内存转储文件,我可以在 sublime 中以十六进制格式查看它,它看起来如下所示:

7f45 4c46 0201 0100 0000 0000 0000 0000 0400 3e00 0100 0000 0000 0000 0000 0000 4000 0000 0000 0000 a003 2900 0000 0000 0000 0000 4000 3800 1600 4000 1800 1700 0400 0000 0400 0000 1005 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

我正在编写一个脚本来将内存转储划分为文件,每个文件只包含一页(我的系统上是 4096,在 sublime 上应该转换为 256 行)。我尝试了以下方法:

7f45 4c46 0201 0100 0000 0000 0000 0000 0400

随着数字越来越大,它仍然表现得很奇怪,突然添加两个十六进制数字或整行!

我已经用尽了我的选择,我认为部分问题是所有这些命令都将文件视为 utf8,并且对空字符的行为不正确。无论如何,有什么方法可以将一个十六进制文件正确地复制到另一个十六进制文件吗?

split 可以按字节数拆分文件。

split -b 4K -d memory.dmp page