Bash 扩展十六进制

Dav*_*ges 11 bash brace-expansion numeric-data hex

我想知道是否有一种方法可以使用 bash 扩展来查看十六进制数的所有组合可能性。我可以在二进制文件中扩展

在基数 2 中:

echo {0..1}{0..1}{0..1}
Run Code Online (Sandbox Code Playgroud)

哪个回馈:

000 001 010 011 100 101 110 111
Run Code Online (Sandbox Code Playgroud)

在基数 10 中:

echo {0..9}{0..9}
Run Code Online (Sandbox Code Playgroud)

哪个回馈:

00  01 02...99
Run Code Online (Sandbox Code Playgroud)

但在十六进制:

echo {0..F}
Run Code Online (Sandbox Code Playgroud)

重复一遍:

{0..F}
Run Code Online (Sandbox Code Playgroud)

che*_*ner 22

你可以; 您只需要将范围{0..F}分成两个单独的范围,{0..9}然后{A..F}

$ printf '%s\n' {{0..9},{A..F}}{{0..9},{A..F}}
00
01
...
FE
EF
Run Code Online (Sandbox Code Playgroud)


Kus*_*nda 15

使用printf

$ printf '%.2x\n' {0..255}
Run Code Online (Sandbox Code Playgroud)

格式字符串%.2x表示将输出格式化为零填充的两位小写十六进制数字(%02x会做同样的事情)。

如果要大写,请使用%.2X.

Bash 只能理解以 10 为基数的整数范围或区间括号扩展中 ASCII 字符之间的范围。


Sat*_*ura 7

这是可能的,但不是很好:

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}
Run Code Online (Sandbox Code Playgroud)

据我所知bash,没有十六进制范围的概念。