hexeditと同じ形式でHexdump出力を取得するにはどうすればよいですか?

hexeditと同じ形式でHexdump出力を取得するにはどうすればよいですか?

出力を取得しようとしています。16進ダンプコマンドは次のようになります。16進編集基本。私はフォーマット文字列を使用してきましたが、-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バイトの間にスペースが1つ必要です。

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

次のように16進ダンプを使用する代わりに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  |................|

関連情報