hexdump:16進モードでオフセット列を抑制する方法

hexdump:16進モードでオフセット列を抑制する方法

バイトや単語を区切るためにスペースを使わずに5バイト目から始めて、バイナリファイルから16バイトを取得したいと思います。

hexdump欲しいことをします。出力を妨げる列をオフセットするだけです。

$ hexdump -s5 -n16 -xe '/1 "%01X"' binfile

odsed作業もうまく機能し、間隔をなくすためにこれを使用する必要がありましたが、オフセット列を抑制するように指示することもできます。

$ od -An -tx1 -j5 -N16 | sed 's/ //g' binfile

なしで動作すると確信していますsedが、od16進モードでエンディアン(バイト交換)に関連する多くの問題があったため、見るほど簡単ではありません。たとえば、-tx1より高い値に変更すると、バイトが変わり、目的の128ビット値が混乱します。-tx1良いですhexdumpが、まだ空白を削除する方法が見つからないようです。しかし、バイト順序は変更せずに保持します。

ベストアンサー1

この-xオプションは、後で書式設定しても表示されないオフセットを表示するように hexdump に指示します。このオプションを削除してください-x

$ hexdump -s5 -n16 -e '/1 "%01X"' <<<@abcdefghijklmnopqrstuvwxyz; echo
65666768696A6B6C6D6E6F7071727374

プラットフォームのエンディアンから2バイト値を読み取るには-x(x86やARMなどのリトルエンディアンプラットフォームで2バイト交換)。%02X%01X

1 ARM CPUは両方のエンディアンをサポートしますが、ほとんどすべてのUnixシステムはこれをリトルエンディアンモードで使用します。

おすすめ記事