Linuxでバイナリファイルの内容を表示する!(hexdump/od/xxd)

Linuxでバイナリファイルの内容を表示します。

バイナリファイルを準備する!

バイナリファイルの準備と言いつつ、コマンドがどのようにバイナリファイルをあつかうか確認するため、テキストファイルを準備します。

$ cat sample.txt
abc
abc

バイナリファイルを表示する!(hexdump)

hexdumpコマンドでファイルの内容をバイナリ表示します。コマンド名に現れている通り、デフォルトで16進形式で表示します。2バイト読んで、逆順で表示されます。

$ hexdump sample.txt
0000000 6261 0a63 6261 0a63                    
0000008

1バイトずつ読んで、表示したい場合は、「-C」オプションを使用します。

$ hexdump -C sample.txt
00000000  61 62 63 0a 61 62 63 0a                           |abc.abc.|
00000008

制御文字の確認で、文字コードの表示が必要ない場合は、「-c」オプションが便利です。

$ hexdump -c sample.txt
0000000   a   b   c  \n   a   b   c  \n                                
0000008

バイナリファイルを表示する!(od)

odコマンドでファイルの内容をバイナリ表示します。コマンド名に現れている通り、デフォルトで8新表示です。hexdumpと同じように2バイト読んで、逆順で表示されます。

$ od sample.txt
0000000 061141 005143 061141 005143
0000010

16進で、1バイトづつの表示してみます。

$ od -tx1 sample.txt
0000000 61 62 63 0a 61 62 63 0a
0000010

制御文字の確認で、文字コードの表示が必要ない場合は、「-c」オプションが便利です。

$ od -c sample.txt
0000000   a   b   c  \n   a   b   c  \n
0000010

バイナリファイルを表示する!(xxd)

xxdコマンドでファイルの内容をバイナリ表示します。素直に1バイトずつの順序で表示されいます。

$ xxd sample.txt
00000000: 6162 630a 6162 630a                      abc.abc.

おわりに

バイナリファイルの表示は、何バイト単位で出力されているかに注意しましょう。エンディアンの関係で表示順序が逆転します。素直に確認するのであれば、「xxd」コマンドが便利だと思います。

関連記事

関連書籍(Amazon)