16進数の桁数の組み合わせのすべての可能性を表示するためにbash展開を使用する方法があるかどうか知りたいのですが。バイナリで展開できます
ベース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}
あなたはできる;範囲を壊すだけです{0..F}
2つの別個の範囲に{0..9}
および{A..F}
:
$ printf '%s\n' {{0..9},{A..F}}{{0..9},{A..F}}
00
01
...
FE
EF
printf
の使用:
$ printf '%.2x\n' {0..255}
書式文字列%.2x
は、ゼロで埋められた2桁の小文字の16進数として出力を書式設定することを示しています(%02x
でも同じことです)。
大文字が必要な場合は、%.2X
を使用します。
Bashは、基数10の整数の範囲、またはASCII文字の間の範囲のブレース展開内の文字のみを理解します。
それは可能ですが、それは良いことではありません:
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}
私が知る限り、bash
には16進数の範囲の概念はありません。