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 字符之间的范围。
这是可能的,但不是很好:
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
,没有十六进制范围的概念。