我正在尝试获取我的输出十六进制转储命令看起来类似于十六进制编辑默认。我一直在使用格式字符串-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 |................|