もっと詳しく

テキストファイル用の16進ダンプが必要ですか? これを実行できるコマンドラインユーティリティをお探しですか? 吹き替えのコマンドが存在するので、あなたは幸運です xxd それはあなたのためにこれを行うことができます。 このチュートリアルでは、わかりやすい例を使用してxxdについて説明します。 ただし、その前に、ここでのすべての例がUbuntu18.04LTSマシンでテストされていることを言及する価値があります。

Linux xxdコマンドは何に使用されますか?

Linuxのxxdコマンドを使用すると、16進ダンプを作成したり、その逆を実行したりすることができます。 その構文は次のとおりです。

xxd [OPTIONS] [file]

そして、ツールのマニュアルページで説明されているのは次のとおりです。

xxd  creates  a hex dump of a given file or standard input.  It can also convert a hex dump back to its original binary form.  Like
uuencode(1) and uudecode(1) it allows the transmission of binary data in a `mail-safe' ASCII representation, but has the  advantage
of decoding to standard output.  Moreover, it can be used to perform binary file patching.

以下は、xxdがどのように機能するかについてのより良いアイデアを与えるはずのいくつかのQ&Aスタイルの例です。

Q1。 xxdコマンドの使い方は?

それは簡単です。 たとえば、次のような内容のテキストファイル「test.txt」があるとします。

No.|Country|Yes/No
01|India|Y
02|US|Y
03|Australia|Y

04|China|N
05|Russia|Y
06|Japan|Y

07|Singapore|Y
08|South Korea|N
09|Finland|Y
10|Ireland|Y

xxdを使用してファイルの内容を16進数に変換する方法は次のとおりです。

xxd test.txt

そして、これが出力です:

00000000: 4e6f 2e7c 436f 756e 7472 797c 5965 732f  No.|Country|Yes/
00000010: 4e6f 0a30 317c 496e 6469 617c 590a 3032  No.01|India|Y.02
00000020: 7c55 537c 590a 3033 7c41 7573 7472 616c  |US|Y.03|Austral
00000030: 6961 7c59 0a0a 3034 7c43 6869 6e61 7c4e  ia|Y..04|China|N
00000040: 0a30 357c 5275 7373 6961 7c59 0a30 367c  .05|Russia|Y.06|
00000050: 4a61 7061 6e7c 590a 0a30 377c 5369 6e67  Japan|Y..07|Sing
00000060: 7061 6f72 657c 590a 3038 7c53 6f75 7468  paore|Y.08|South
00000070: 204b 6f72 6561 7c4e 0a30 397c 4669 6e61   Korea|N.09|Fina
00000080: 6c61 6e64 7c59 0a31 307c 4972 656c 616e  land|Y.10|Irelan
00000090: 647c 590a                                d|Y.

Q2。 xxdで数行スキップする方法は?

完全なファイルの16進ダンプが必要ないとします。 代わりに、ツールが特定の行から変換を開始するようにします。 次に、これは-sコマンドを使用して実現できます。

たとえば、xxdで3行目以降の16進ダンプを生成する場合は、次のようにxxdに指示します。

xxd -s 0x30 test.txt

生成される出力は次のとおりです。

00000030: 6961 7c59 0a0a 3034 7c43 6869 6e61 7c4e  ia|Y..04|China|N
00000040: 0a30 357c 5275 7373 6961 7c59 0a30 367c  .05|Russia|Y.06|
00000050: 4a61 7061 6e7c 590a 0a30 377c 5369 6e67  Japan|Y..07|Sing
00000060: 7061 6f72 657c 590a 3038 7c53 6f75 7468  paore|Y.08|South
00000070: 204b 6f72 6561 7c4e 0a30 397c 4669 6e61   Korea|N.09|Fina
00000080: 6c61 6e64 7c59 0a31 307c 4972 656c 616e  land|Y.10|Irelan
00000090: 647c 590a                                d|Y.

したがって、この場合、16進ダンプが3行目以降に生成されていることがわかります。

Q3。 xxd出力を特定の長さに制限するにはどうすればよいですか?

前のセクションでは、xxdを特定のポイントから変換を開始する方法について説明しました。 ただし、変換を特定のポイントに制限する方法もあります。 これは、-lコマンドラインオプションを使用して実行できます。

たとえば、xxdがtest.txtの最初の3行のみにダンプを作成するようにするには、次のように使用します。

xxd -l 0x30 test.txt

生成された出力は次のとおりです。

00000000: 4e6f 2e7c 436f 756e 7472 797c 5965 732f  No.|Country|Yes/
00000010: 4e6f 0a30 317c 496e 6469 617c 590a 3032  No.01|India|Y.02
00000020: 7c55 537c 590a 3033 7c41 7573 7472 616c  |US|Y.03|Austral

Q4。 列の長さを設定するにはどうすればよいですか?

xxdが出力に生成する列の数を減らしたり増やしたりする場合は、-cオプションを使用して、そこに列の数を指定します。 このオプションを使用したコマンドの例を次に示します。

xxd -c 5 test.txt

そして、これが出力です:

00000000: 4e6f 2e7c 43  No.|C
00000005: 6f75 6e74 72  ountr
0000000a: 797c 5965 73  y|Yes
0000000f: 2f4e 6f0a 30  /No.0
00000014: 317c 496e 64  1|Ind
00000019: 6961 7c59 0a  ia|Y.
0000001e: 3032 7c55 53  02|US
00000023: 7c59 0a30 33  |Y.03
00000028: 7c41 7573 74  |Aust
0000002d: 7261 6c69 61  ralia
00000032: 7c59 0a0a 30  |Y..0
00000037: 347c 4368 69  4|Chi
0000003c: 6e61 7c4e 0a  na|N.
00000041: 3035 7c52 75  05|Ru
00000046: 7373 6961 7c  ssia|
0000004b: 590a 3036 7c  Y.06|
00000050: 4a61 7061 6e  Japan
00000055: 7c59 0a0a 30  |Y..0
0000005a: 377c 5369 6e  7|Sin
0000005f: 6770 616f 72  gpaor
00000064: 657c 590a 30  e|Y.0
00000069: 387c 536f 75  8|Sou
0000006e: 7468 204b 6f  th Ko
00000073: 7265 617c 4e  rea|N
00000078: 0a30 397c 46  .09|F
0000007d: 696e 616c 61  inala
00000082: 6e64 7c59 0a  nd|Y.
00000087: 3130 7c49 72  10|Ir
0000008c: 656c 616e 64  eland
00000091: 7c59 0a       |Y.

したがって、出力で生成された列は5つだけであることがわかります。

Q5。 xxdにバイナリダンプを生成させる方法は?

はい、これも可能です。 -bコマンドラインオプションを使用すると、xxdは2進数でダンプを生成します。 このツールについてのマニュアルページの内容は次のとおりです。

-b | -bits
Switch to bits (binary digits) dump, rather than hexdump.  This option writes octets as eight digits "1"s and  "0"s  instead
of  a  normal  hexadecimal  dump. Each line is preceded by a line number in hexadecimal and followed by an ascii (or ebcdic)
representation. The command line switches -r, -p, -i do not work with this mode.

次に例を示します。

結論

ご覧のとおり、xxdコマンドは、16進数および2進数のファイルの内容を処理する場合に役立ちます。 ここで、このチュートリアルでは、xxdが提供するいくつかの基本的なオプションについて説明しました。 これらの練習が終わったら、ツールの マニュアルページ それについてもっと学ぶために。

The post 初心者向けのLinuxxxdコマンドチュートリアル(例付き) appeared first on Gamingsym Japan.