我想知道是否有一种方法可以使用 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
但以十六进制表示:
echo {0..F}
重复一遍:
{0..F}
答案1
你可以;您只需要将范围分成{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
表示将输出格式化为零填充的两位数小写十六进制数(%02x
也会做同样的事情)。
如果您想要大写,请使用%.2X
.
Bash 仅理解以 10 为基数的整数范围或区间大括号扩展中 ASCII 字符之间的范围。
答案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}
据我所知,bash
没有十六进制范围的概念。