Text-Formatting

如何獲得與 hexedit 格式相同的 Hexdump 輸出?

  • February 2, 2020

我試圖讓我的hexdump命令的輸出看起來類似於hexedit預設值。我一直在使用格式字元串-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 ...

不是那麼簡單也不明顯……試試

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

我建議不要使用十六進制轉儲,而是像這樣使用 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  |................|

引用自:https://unix.stackexchange.com/questions/476079