Bash 16進拡張

Bash 16進拡張

Bash拡張を使用して、可能なすべての16進数の組み合わせを表示する方法があるかどうか疑問に思います。バイナリに拡張できます。

基本2では:

echo {0..1}{0..1}{0..1}

次を返します。

000 001 010 011 100 101 110 111

10進基準:

echo {0..9}{0..9}

次を返します。

00  01 02...99

しかし、16進数で表現すると、次のようになります。

echo {0..F}

繰り返す:

{0..F}

答え1

範囲を2つの別々の{0..F}範囲に分割するだけです{0..9}{A..F}

$ printf '%s\n' {{0..9},{A..F}}{{0..9},{A..F}}
00
01
...
FE
EF

答え2

使用printf:

$ printf '%.2x\n' {0..255}

書式文字列は、%.2x出力をゼロで埋められた2桁の小文字の16進数(%02x同じ操作を実行)で書式設定することを意味します。

大文字が必要な場合はを使用してください%.2X

Bashは、範囲中括弧拡張のASCII文字間の範囲、または下が10の整数範囲のみを理解します。

答え3

可能ですが良くありません。

echo {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}

私が知る限り、bash16進範囲の概念はありません。

関連情報