gpt4 book ai didi

bash - 如何通过命令行获取随机的32位十六进制字符串?

转载 作者:行者123 更新时间:2023-11-29 08:42:26 26 4
gpt4 key购买 nike

我想编写一条命令,打印出 32 位十六进制数字的字符串。我有一个有效的 Python 脚本:

python -c 'import random ; print "".join(map(lambda t: format(t, "02X"), [random.randrange(256) for x in range(16)]))'

这会生成如下输出:

6EF6B30F9E557F948C402C89002C7C8A 

这是我需要的。

在 Mac 上,我什至可以这样做:

uuidgen | tr -d '-'

但是,我无法访问更复杂的脚本语言 ruby​​ 和 python,而且我不会使用 Mac(所以没有 uuidgen)。我需要坚持使用更多 bash'ish 工具,如 sed、awk、/dev/random,因为我在有限的平台上。有办法做到这一点吗?

最佳答案

如果你有 hexdump 那么:

hexdump -vn16 -e'4/4 "%08X" 1 "\n"' /dev/urandom

应该完成这项工作。

解释:

  • -v 打印所有数据(默认情况下 hexdump* 替换重复)。
  • -n16 消耗 16 个字节的输入(32 个十六进制数字 = 16 个字节)。
  • 4/4 "%08X" 迭代四次,每次迭代消耗 4 个字节,并将相应的 32 位值打印为 8 个十六进制数字,如果需要,带有前导零。
  • 1 "\n" 以单个换行符结束。

关于bash - 如何通过命令行获取随机的32位十六进制字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34328759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com