Bash扩展十六进制


10

我想知道是否存在一种使用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}

请注意,echo {0-9A-F}BRACE_CCL选项可在zsh中使用。
TonioElGringo

请注意,在以10为基数的情况下,您也可以说{00..99}获得相同的输出。
Ruslan

Answers:


20

您可以; 你只需要打破范围{0..F}分为两个单独的范围{0..9}{A..F}

$ printf '%s\n' {{0..9},{A..F}}{{0..9},{A..F}}
00
01
...
FE
EF

这比手动在0-9A-F中写入每个数字要好得多!
dhag

14

使用printf

$ printf '%.2x\n' {0..255}

格式字符串%.2x表示将输出格式设置为零填充的两位小写十六进制数字(%02x也可以这样做)。

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

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


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}

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.