ホーム > テキスト処理・検索 > xxd

xxd: 16進数ダンプの生成と逆変換

xxdは、ファイルや標準入力の内容を16進数(hexadecimal)形式でダンプしたり、16進数ダンプをバイナリ形式に戻したりするユーティリティです。主にバイナリファイルの内容を確認・編集する際に使用され、デバッグやデータ分析に役立ちます。

概要

xxdは、指定されたデータを16進数とASCII文字列で同時に表示するダンプを生成します。また、これらのダンプを元のバイナリデータに変換する機能も提供します。

主な機能

  • ファイルまたは標準入力の16進数ダンプ生成
  • 16進数ダンプのバイナリファイルへの逆変換
  • 指定したオフセットからのダンプ開始
  • ダンプ出力形式の制御

主なオプション

xxdコマンドの主なオプションは以下の通りです。

ダンプ形式と制御

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`xxd` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

xxdコマンドの様々な活用例です。

ファイルの基本16進数ダンプ

echo 'Hello World!' > test.txt
xxd test.txt

指定されたファイルの内容を16進数とASCII文字でダンプします。

16進数ダンプをバイナリファイルに逆変換

echo '00000000: 4865 6c6c 6f20 576f 726c 6421 0a    Hello World!.\n' > hex_dump.txt
xxd -r hex_dump.txt > restored.txt
cat restored.txt

xxdで生成された16進数ダンプファイルを元のバイナリファイルに復元します。

1行に8バイトずつ出力

echo 'This is a test string for xxd.' > test.txt
xxd -c 8 test.txt

1行に16バイトではなく、8バイトのみを出力するように設定します。

ファイルの最初の20バイトのみダンプ

echo 'This is a longer test string for xxd to demonstrate the length option.' > test.txt
xxd -l 20 test.txt

ファイルの先頭から20バイトまでのみをダンプします。

特定のオフセットからダンプ開始

echo 'abcdefghijklmnopqrstuvwxyz' > test.txt
xxd -s 5 test.txt

ファイルの5バイト目からダンプを開始します。

出力をファイルにリダイレクト

echo 'Sample data' > input.txt
xxd input.txt > output.hex

xxdの出力を別のファイルに保存します。(xxdは-oオプションをサポートしていません)

ヒントと注意点

xxd使用時の役立つヒントと注意点です。

'-o' オプションに関する誤解

多くのコマンドは出力ファイルを指定するために'-o'オプションを使用しますが、xxdは'-o'オプションをサポートしていません。xxdの出力をファイルに保存するには、シェルのリダイレクト(`>`)を使用する必要があります。

  • 正しい使い方: xxd [オプション] <入力ファイル> > <出力ファイル>
  • : xxd my_binary > my_binary.hex

他のダンプツールとの比較

xxd以外にも、hexdumpやodといったダンプツールがあります。それぞれの特徴を理解し、状況に応じて適切なツールを選択することが推奨されます。

  • **xxd**: 16進数とASCIIの同時出力、逆変換機能を提供(vimパッケージに含まれる)
  • **hexdump**: 様々な出力形式をサポート(16進数、8進数、10進数など)、逆変換機能なし
  • **od (octal dump)**: 主に8進数ダンプに使用されますが、様々な形式をサポート

パイプラインの活用

xxdは標準入力を受け取ることができるため、他のコマンドの出力をパイプラインで接続して即座にダンプできます。これは、一時ファイルを作成せずにデータを分析する際に非常に便利です。

パイプラインの例

ls -l | xxd

ls -l コマンドの出力をxxdでダンプします。


関連するコマンド

機能的に類似しているか、よく一緒に使われるコマンドです。



同じカテゴリのコマンド