逆引きUNIXコマンド/16進数文字列をバイナリ化・16進数を文字列化する・xxd
の編集
Top
/
逆引きUNIXコマンド
/
16進数文字列をバイナリ化・16進数を文字列化する・xxd
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * 16進を文字列化したのをバイナリに、バイナリを16進文字列に変換する・xxd [#qf98b6cf] 16進の値が文字列になっているのをバイナリに戻したり、バイナリを16進にする''xxd''というコマンドを紹介します。~ 以下の変換になります。 48656C6C6F0A → Hello Hello → 48656C6C6F0A #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * 関連記事 [#q7b4efcb] -[[HEX形式でファイルを見たい・od>逆引きUNIXコマンド/HEX形式でファイルを見たい]] -[[HEX形式でファイルを見たい・hexdump>逆引きUNIXコマンド/HEX形式でファイルを見たい・hexdumpコマンド]] * 16 進ダンプを作成したり、元に戻したり。 xxd [#p2e1121a] xxdコマンドのmanを見ると以下のマニュアルが表示されます。 XXD(1) General Commands Manual XXD(1) 名前 xxd - 16 進ダンプを作成したり、元に戻したり。 書式 xxd -h[elp] xxd [options] [infile [outfile]] xxd -r[evert] [options] [infile [outfile]] 一番最初に書いた Hello 文字列を16進文字列に変換し、変換した16進文字列をHelloに戻してみます。 $ echo Hello | xxd -p 48656c6c6f0a $ echo Hello | xxd -p | tr a-f A-F 48656C6C6F0A $ echo 48656c6c6f0a | xxd -r -p Hello $ echo 48656C6C6F0A | xxd -r -p Hello 上記の動作例は、Helloというデータを16進の文字列に変換しています。~ 変換した16進文字列をさらにxxdコマンドを使って元のHelloに戻しています。~ Helloとう文字列をバイナリで見ると以下のようになります。~ (最後の0aは改行です。) $ echo Hello | hexdump -C 00000000 48 65 6c 6c 6f 0a |Hello.| 意図した変換がされているのが確認できます。 * xxdコマンド [#qeac5fb9] xxdコマンドの使用例を以下に記します。~ 使用するxxdコマンドのオプションは以下の2つです。 -p | -ps | -postscript | -plain ポストスクリプト形式の 16 進ダンプを出力する。別名 プレーン 16 進ダンプ。 -r | -revert 元に戻す: 16 進ダンプからバイナリ形式に変換 (またはパッチ) します。 ファイルへ出力 する場合、出力先のファイルは切り詰めされません。 行番号や特定の書式がないプレーン 16 進ダンプを読み込む場合は、 -r -p を指定してください。空白と改行は無視されます。 リトルエンディアンなどに対応したオプションもありますので、必要な場合はman xxdをして確認して見てください。 * バイナリ・16進ダンプの相互変換 xxdコマンド例 [#l5393a13] 以下はバイナリ、16進数文字列を相互に変換するコマンド例です。 - "GNU/Linux" を16進文字列にしてみました。 $ echo GNU/Linux | xxd -p 474e552f4c696e75780a 英字を大文字にしたい場合は、trやsedを使用すれば簡単です。 $ echo GNU/Linux | xxd -p | tr a-f A-F 474E552F4C696E75780A ファイルを対象にする場合は、以下のようになります。~ -ファイル内容を16進数の文字列に変換 $ echo "Hello world." > HelloWorld.txt $ xxd -p HelloWorld.txt 48656c6c6f20776f726c642e0a - 16進数の文字列変換されたファイルをバイナリに変換 $ xxd -p HelloWorld.txt > HelloWorld.16 $ cat HelloWorld.16 48656c6c6f20776f726c642e0a $ xxd -p -r HelloWorld.16 > out.bin $ cat out.bin Hello world. 以上、バイナリを16進数の文字列に変換、またその逆の文字列化された16進数をバイナリに変換するxxdコマンドの紹介でした。 #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
タイムスタンプを変更しない
#navi(../) * 16進を文字列化したのをバイナリに、バイナリを16進文字列に変換する・xxd [#qf98b6cf] 16進の値が文字列になっているのをバイナリに戻したり、バイナリを16進にする''xxd''というコマンドを紹介します。~ 以下の変換になります。 48656C6C6F0A → Hello Hello → 48656C6C6F0A #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * 関連記事 [#q7b4efcb] -[[HEX形式でファイルを見たい・od>逆引きUNIXコマンド/HEX形式でファイルを見たい]] -[[HEX形式でファイルを見たい・hexdump>逆引きUNIXコマンド/HEX形式でファイルを見たい・hexdumpコマンド]] * 16 進ダンプを作成したり、元に戻したり。 xxd [#p2e1121a] xxdコマンドのmanを見ると以下のマニュアルが表示されます。 XXD(1) General Commands Manual XXD(1) 名前 xxd - 16 進ダンプを作成したり、元に戻したり。 書式 xxd -h[elp] xxd [options] [infile [outfile]] xxd -r[evert] [options] [infile [outfile]] 一番最初に書いた Hello 文字列を16進文字列に変換し、変換した16進文字列をHelloに戻してみます。 $ echo Hello | xxd -p 48656c6c6f0a $ echo Hello | xxd -p | tr a-f A-F 48656C6C6F0A $ echo 48656c6c6f0a | xxd -r -p Hello $ echo 48656C6C6F0A | xxd -r -p Hello 上記の動作例は、Helloというデータを16進の文字列に変換しています。~ 変換した16進文字列をさらにxxdコマンドを使って元のHelloに戻しています。~ Helloとう文字列をバイナリで見ると以下のようになります。~ (最後の0aは改行です。) $ echo Hello | hexdump -C 00000000 48 65 6c 6c 6f 0a |Hello.| 意図した変換がされているのが確認できます。 * xxdコマンド [#qeac5fb9] xxdコマンドの使用例を以下に記します。~ 使用するxxdコマンドのオプションは以下の2つです。 -p | -ps | -postscript | -plain ポストスクリプト形式の 16 進ダンプを出力する。別名 プレーン 16 進ダンプ。 -r | -revert 元に戻す: 16 進ダンプからバイナリ形式に変換 (またはパッチ) します。 ファイルへ出力 する場合、出力先のファイルは切り詰めされません。 行番号や特定の書式がないプレーン 16 進ダンプを読み込む場合は、 -r -p を指定してください。空白と改行は無視されます。 リトルエンディアンなどに対応したオプションもありますので、必要な場合はman xxdをして確認して見てください。 * バイナリ・16進ダンプの相互変換 xxdコマンド例 [#l5393a13] 以下はバイナリ、16進数文字列を相互に変換するコマンド例です。 - "GNU/Linux" を16進文字列にしてみました。 $ echo GNU/Linux | xxd -p 474e552f4c696e75780a 英字を大文字にしたい場合は、trやsedを使用すれば簡単です。 $ echo GNU/Linux | xxd -p | tr a-f A-F 474E552F4C696E75780A ファイルを対象にする場合は、以下のようになります。~ -ファイル内容を16進数の文字列に変換 $ echo "Hello world." > HelloWorld.txt $ xxd -p HelloWorld.txt 48656c6c6f20776f726c642e0a - 16進数の文字列変換されたファイルをバイナリに変換 $ xxd -p HelloWorld.txt > HelloWorld.16 $ cat HelloWorld.16 48656c6c6f20776f726c642e0a $ xxd -p -r HelloWorld.16 > out.bin $ cat out.bin Hello world. 以上、バイナリを16進数の文字列に変換、またその逆の文字列化された16進数をバイナリに変換するxxdコマンドの紹介でした。 #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
テキスト整形のルールを表示する