xxd
これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド xxd です。
プログラム:
NAME
xxd - XNUMX 進ダンプを作成するか、その逆を実行します。
SYNOPSIS
xxd -ヘルプ]
xxd [オプション] [入力ファイル [出力ファイル]]
xxd -r[evert] [オプション] [infile [outfile]]
DESCRIPTION
xxd 指定されたファイルまたは標準入力の XNUMX 進ダンプを作成します。 XNUMX進ダンプも変換できます
元のバイナリ形式に戻ります。 好き uuencode(1)と udecode(1) を許可します。
バイナリデータは「メールセーフ」ASCII 表現で送信されますが、次のような利点があります。
標準出力へのデコード。 さらに、バイナリ ファイルのパッチ適用にも使用できます。
OPTIONS
ない場合 ファイル内 が与えられると、標準入力が読み取られます。 もしも ファイル内 `として指定されます-' キャラクター、
次に、入力は標準入力から取得されます。 いいえの場合 アウトファイル が与えられます (または `-' の文字が入っています
その場所)、結果は標準出力に送信されます。
最初のオプション以外はチェックしない「遅延」パーサーが使用されることに注意してください。
ただし、オプションの後にパラメータが続く場合は除きます。 単一のオプション間のスペース
文字とそのパラメータはオプションです。 オプションのパラメータはXNUMX進数で指定できますが、
XNUMX 進数または XNUMX 進数の表記。 したがって -c8, -c 8, -c 010 -列 8 すべて同等です。
-a | -自動スキップ
自動スキップの切り替え: 単一の「*」が NULL 行を置き換えます。 デフォルトはオフです。
-b | -ビット
XNUMX 進ダンプではなくビット (XNUMX 進数) ダンプに切り替えます。 このオプションは次のように書き込みます
オクテットは、通常の 1 進ダンプではなく、0 桁の「XNUMX」と「XNUMX」として扱われます。 各
行の前には XNUMX 進数の行番号があり、その後に ASCII (または
ebcdic) 表現。 コマンド ライン スイッチ -r、-p、-i はこれでは機能しません。
モード。
-c コルズ | -列 コルズ
フォーマットコルズ> 16 行あたりのオクテット。 デフォルトは 12 (-i: 30、-ps: 6、-b: 256)。 最大XNUMX。
-E | -EBCDIC
右側の列の文字エンコーディングを ASCII から EBCDIC に変更します。 これ
XNUMX 進表現は変更されません。 このオプションは意味がありません
-r、-p、または -i との組み合わせ。
-e リトルエンディアンの XNUMX 進ダンプに切り替えます。 このオプションはバイト グループを単語として扱います。
リトルエンディアンのバイトオーダー。 デフォルトの 4 バイトのグループ化は、次のコマンドを使用して変更できます。 -g.
このオプションは XNUMX 進ダンプにのみ適用され、ASCII (または EBCDIC) 表現は残ります。
変更なし。 コマンド ライン スイッチ -r、-p、-i は、このモードでは機能しません。
-g バイト | -グループサイズ バイト
それぞれの出力を分離するバイト> バイト (XNUMX つの XNUMX 進文字または XNUMX つのビット数字)
それぞれ)空白で区切ります。 特定 -g 0 グループ化を抑制します。バイト> デフォルトは 2
通常モードでは、 4 リトルエンディアンモードと 1 ビットモードで。 グループ化はできません
ポストスクリプトに適用するか、スタイルを含めます。
-h | -助けて
使用可能なコマンドの概要を出力して終了します。 XNUMX 進ダンプは実行されません。
-i | -含める
C での出力にはファイル スタイルが含まれます。 完全な静的配列定義が書き込まれます
(入力ファイルに基づいて名前が付けられます) (xxd が標準入力から読み取る場合を除く)。
-l LEN | -レン LEN
書いたらやめるLEN> オクテット。
-o オフセット
追加オフセット> 表示されているファイルの位置に移動します。
-p | -ps | -追記 | -プレーン
Postscript 連続 XNUMX 進ダンプ形式で出力します。 プレーン ヘックスダンプ スタイルとも呼ばれます。
-r | -元に戻す
逆の操作: XNUMX 進ダンプをバイナリに変換 (またはパッチ) します。 書き込まない場合は、
stdout、xxd は、切り捨てずに出力ファイルに書き込みます。 組み合わせて使う
-r -p 行番号情報なし、および
特定の列レイアウト。 追加の空白と改行が許可されます
どこでも。
-求める オフセット
後に使用する場合 -r: で元に戻すオフセット> hexdump で見つかったファイル位置に追加されました。
-s [+][-]シーク
から始める求める> 絶対バイト数。 (または相対) infile オフセット。 + シークが
現在の stdin ファイルの位置を基準とした相対位置 (読み込まない場合は意味がありません)
標準入力)。 - は、シークが末尾からの文字数であることを示します。
入力 (または入力と組み合わせた場合) +: 現在の標準入力ファイルの位置の前)。 それなし
-s オプションを指定すると、xxd は現在のファイル位置から開始されます。
-u 大文字の XNUMX 進文字を使用してください。 デフォルトは小文字です。
-v | -バージョン
バージョン文字列を表示します。
警告
xxd -r には、行番号情報を評価する際のいくつかの組み込みマジックがあります。 出力の場合
ファイルがシーク可能である場合、各 XNUMX 進ダンプ行の先頭の行番号が範囲外になる可能性があります。
順番が違うと、線が抜けたり、重なったりすることがあります。 このような場合、xxd は シーク(2) 次へ
位置。 出力ファイルがシークできない場合は、ギャップのみが許可され、埋められます。
ヌルバイトによる。
xxd -r 解析エラーは決して生成されません。 ゴミは黙ってスキップされます。
XNUMX 進ダンプを編集するときは、次の点に注意してください。 xxd -r 以降の入力行のすべてをスキップします
十分な数の XNUMX 進データ列を読み取ります (オプション -c を参照)。 これはまた、変化することを意味します
印刷可能な ascii (または ebcdic) 列は常に無視されます。 プレーンを元に戻す (または
追記) xxd -r -p を指定した style hexdump は正しいカラム数に依存しません。
ここでは、XNUMX 組の XNUMX 進数のように見えるものはすべて解釈されます。
の違いに注意してください
% xxd -i file
% xxd -i < file
xxd -s +シーク とは異なる場合があります xxd -s 求める、など シーク(2) は入力を「巻き戻す」ために使用されます。 あ
「+」は、入力ソースが stdin であり、stdin のファイル位置が異なる場合に違いをもたらします。
ファイルの先頭から、xxd が開始されて入力が与えられるまでの時点。 以下
例は明確にするのに役立つかもしれません(またはさらに混乱を招くかもしれません!)...
読み取る前に標準入力を巻き戻します。 「猫」がすでに最後まで読んでいるために必要です
stdin。
% sh -c "猫 > プレーンコピー; xxd -s 0 > hex_copy" < file
ファイル位置 0x480 (=1024+128) 以降の XNUMX 進ダンプ。 「+」記号は「相対的に」を意味します。
現在の位置」の場合、dd が中断した場所の 128k に `1' が追加されます。
% sh -c 「ああ of=plain_snippet bs=1k カウント=1; xxd -s +128 > hex_スニペット" < file
ファイル位置 0x100 ( = 1024-768) からの XNUMX 進ダンプ。
% sh -c 「ああ of=plain_snippet bs=1k カウント=1; xxd -s + -768 > hex_スニペット" < file
ただし、これはまれな状況であり、「+」の使用が必要になることはほとんどありません。 著者の好み
xxd の効果を監視するには ストラス(1)または トラス(1) -s が使用される場合。
例
最初の 0 行 (30 進数 XNUMXxXNUMX バイト) を除くすべてを出力します。 file.
% xxd -s 0x30 file
末尾から 3 行 (0 進数 30xXNUMX バイト) を出力します。 file.
% xxd -s -0x30 file
120 バイトを 20 行あたり XNUMX オクテットの連続 XNUMX 進ダンプとして出力します。
% xxd -l 120 -ps -c 20 xxd.1
2e54482058584420312022417567757374203139
39362220224d616e75616c207061676520666f72
20787864220a2e5c220a2e5c222032317374204d
617920313939360a2e5c22204d616e2070616765
20617574686f723a0a2e5c2220202020546f6e79
204e7567656e74203c746f6e79407363746e7567
このマニュアル ページの最初の 120 バイトを 12 行あたり XNUMX オクテットで XNUMX 進ダンプします。
% xxd -l 120 -c 12 xxd.1
0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A
000000c: 7567 7573 7420 3139 3936 2220 1996 年 XNUMX 月"
0000018: 224d 616e 7561 6c20 7061 6765 "マニュアルページ
0000024: 2066 6f72 2078 7864 220a 2e5c (xxd 用)..\
0000030: 220a 2e5c 2220 3231 7374 204d "..\" 21 番目の M
000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996..\"
0000048: 4d61 6e20 7061 6765 2061 7574 マニュアル ページ自動
0000054: 686f 723a 0a2e 5c22 2020 2020 hor:...\"
0000060: 546f 6e79 204e 7567 656e 7420 トニー・ニュージェント
000006c: 3c74 6f6e 7940 7363 746e 7567
ファイル xxd.1 の日付のみを表示します。
% xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3231 7374 204d 6179 2031 3939 36 21 年 1996 月 XNUMX 日
コピー 入力ファイル 〜へ 出力ファイル そして値 100x0 の 00 バイトを先頭に追加します。
% xxd 入力ファイル | xxd -r -s 100 > 出力ファイル
ファイル xxd.1 の日付にパッチを適用します。
% echo 「0000037: 3574 68 " | xxd -r - xxd.1
% xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3235 7468 204d 6179 2031 3939 36 25 年 1996 月 XNUMX 日
最後のバイト「A」(65537 進数)を除き、すべてのバイトが 0x00 の XNUMX バイトのファイルを作成します。
0x41)。
% echo 「010000: 41 " | xxd -r > file
このファイルを自動スキップで XNUMX 進ダンプします。
% xxd -a -c 12 file
0000000: 0000 0000 0000 0000 0000 0000 ......
*
000fffc: 0000 0000 40 ....A
単一の「A」文字を含む 1 バイトのファイルを作成します。 「-r -s」の後の数字を加算すると、
ファイル内で見つかった行番号。 実際には、先頭のバイトが抑制されます。
% echo 「010000: 41 " | xxd -r -s -0x10000 > file
xxd をエディター内でフィルターとして使用します。 活力(1) 「a」でマークされた領域を XNUMX 進ダンプします
そして「z」。
:'a、'z!xxd
xxd をエディター内でフィルターとして使用します。 活力(1) マークされたバイナリ XNUMX 進ダンプを回復するには
「a」と「z」の間。
:'a、'z!xxd -r
xxd をエディター内でフィルターとして使用します。 活力(1) XNUMX 進ダンプの XNUMX 行を回復します。
カーソルを行の上に移動し、次のように入力します。
!!xxd -r
シリアルラインから単一文字を読み取る
% xxd -c1 < /dev/term/b &
% スティ < /dev/term/b -エコー -opost -isig -アイカノン 分 1
% echo -n foo > /dev/term/b
リターン VALUES
次のエラー値が返されます。
0 エラーは発生しませんでした。
-1 操作はサポートされていません ( xxd -r -i まだ無理です)。
オプションの解析中にエラーが 1 件発生しました。
入力ファイルに問題が 2 つあります。
出力ファイルに関する 3 つの問題。
4,5 希望のシーク位置に到達できません。
onworks.net サービスを使用してオンラインで xxd を使用する