hexdump -ve '1/1 "%02x"'
xxd -p | tr -d '\n'
これを書くのに飽きたら 毎回、エイリアスを作成してください。
<ブロック引用>
プレーンな機械可読 16 進数データとの間で簡単に変換する方法
簡単に言えば。
$ xxd -plain test.txt > test.hex $ xxd -plain -revert test.hex test2.txt $ diff test.txt test2.txt $
説明:
$ xxd -plain test.txt > test.hex
これにより、test.txt 内のデータの 16 進エンコードが新しいファイル test.hex に書き込まれます。-p
または -plain
オプションを指定すると、xxd は 16 進数のペアの間にスペースを入れない (つまり、バイト値の間にスペースを入れない) 「プレーンな」16 進数形式を使用します。これは、「abc ABC」を「61626320414243」に変換します。 -p
なし テキストを 16 ビット ワード指向の従来の 16 進ダンプ形式に変換します。これは間違いなく読みやすいですが、コンパクトではないため、送信形式としてはあまり適しておらず、元に戻すのが少し難しくなります。
$ xxd -plain -revert text.hex test2.txt
これは -r
を使用します または -revert
逆操作のオプション。-plain
オプションは、入力 hex ファイルがプレーン フォーマットであることを示すために再び使用されます。
後で結果を元のファイルと比較できるように、出力ファイル名を元のファイル名とは異なるものにします。
$ diff test.txt test2.txt
$
diff コマンドは何も出力しません。これは、元のファイルの内容と再構成されたファイルの内容に違いがないことを意味します。
<ブロック引用>特殊なフォーマット文字列を掘り下げるのはもううんざりです
エイリアスを使用するか、.profile で関数を宣言してニーモニックを作成し、man ページを覚えたり掘り下げたりする必要がないようにします。
または -plain
を覚えておいてください そして -revert
.
ラップされた出力
はい、出力に改行文字があります。あなたはそれを避けたい.あなたは -c
を使うことができます または -cols
出力の改行を避けるために、出力行の長さを指定するオプション。 -c 0
デフォルトの長さを示し、man ページでは 256 が限界であると示唆されていますが、それを超えても機能するようです。
$ xxd -plain -cols 9999 test.txt > test.hex
$ wc test.txt test.hex
121 880 4603 test.txt
1 1 9207 test.hex
wc
wordcount コマンドは、各ファイルの行数、単語数、および文字数を教えてくれます。
したがって、121 行 (880 ワード、4603 バイト) の ASCII テキストが 1 行の 16 進数としてエンコードされました。
これは od
を使用したバージョンです ユーティリティ (coreutils
の一部) パッケージ):
od -An < input | tr -dc '[:alnum:]'