如何获得与 hexedit 格式相同的 Hexdump 输出?

如何获得与 hexedit 格式相同的 Hexdump 输出?

我正在尝试获取我的输出十六进制转储命令看起来类似于十六进制编辑默认。我一直在使用格式字符串-e,但由于没有很好的文档,可以直观地描述如何使用它,所以我无法正确使用它。

目前,我有:

# hexdump -C -n 0x100 m1.bin
00000090  00 00 00 00 00 56 08 00  00 00 00 00 04 00 00 00  |.....V..........|
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

但我希望在 4 个字节之间多一个空格,如下所示:

00000090  00 00 00 00  00 56 08 00  00 00 00 00  04 00 00 00  |.....V..........|
000000a0  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  |................|

或者像这样:

00000090  0000 0000  0056 0800  0000 0000  0400 0000  |.....V..........|
000000a0  0000 0000  0000 0000  0000 0000  0000 0000  |................|

另外,如果能得到一些颜色,那就太好了。到目前为止,我还无法从 hexdump 中获得任何颜色。

编辑

对于管道来说,省略地址、字符字段和换行符 ( \n) 也非常有用:

# hexdump -e '16/1 "%04.2x"' -n 40 m1.bin
  54  4f  43  00  00  00  00  00  00  00  00  00  00  00  00 ...

答案1

没那么简单也不明显......尝试一下

 hexdump -v  -e '"%08.8_ax  "' -e' 4/1 "%02x " "  " 4/1 "%02x " "  "  4/1 "%02x " "  " 4/1 "%02x "  ' -e '" |" 16/1 "%_p" "|\n"' file

答案2

我建议使用 xxd 而不是使用十六进制转储,如下所示:

xxd <bin_name>
00000000: cffa edfe 0700 0001 0300 0080 0200 0000  ................
00000010: 1000 0000 d006 0000 8580 2100 0000 0000  ..........!.....
00000020: 1900 0000 4800 0000 5f5f 5041 4745 5a45  ....H...__PAGEZE
00000030: 524f 0000 0000 0000 0000 0000 0000 0000  RO..............
00000040: 0000 0000 0100 0000 0000 0000 0000 0000  ................

如果你想要|最后的 ascii 字母,试试这个:

xxd <bin_name> |  sed -r 's/(................)$/|\1|/g'
00000000: cffa edfe 0700 0001 0300 0080 0200 0000  |................|
00000010: 1000 0000 d006 0000 8580 2100 0000 0000  |..........!.....|
00000020: 1900 0000 4800 0000 5f5f 5041 4745 5a45  |....H...__PAGEZE|
00000030: 524f 0000 0000 0000 0000 0000 0000 0000  |RO..............|
00000040: 0000 0000 0100 0000 0000 0000 0000 0000  |................|

相关内容