Bash 十六进制扩展

Bash 十六进制扩展

我想知道是否有一种方法可以使用 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没有十六进制范围的概念。

相关内容