ric*_*mon 4 command-line output dd
dd if=/dev/urandom of=a.log bs=1M count=2
Run Code Online (Sandbox Code Playgroud)
问题:如果这段代码 ^ 给了我随机数,我怎么能得到随机的非单词(无法理解),比如“hgcqw”。
问题二:shuf命令可以和dd命令一起使用吗?
谢谢!
6/21 更新。(父亲节)
@ Serg 我的目标是首先获得数字。比如说,从 01 到 100 的随机两位数。给出命令并运行代码。最终它会给我 14、17、21、35(我正在编造我得到的随机数)。接下来,我想获得这些数字的平均值。在这种情况下,平均值将为 21.75 (22)。目标是停止循环,直到找到我正在寻找的特定平均值。在这种情况下,它将是 25。我的第二个目标是获取随机单词,然后计算使用了哪些单词。
@特顿
一个词是“buck”、“duck”或“祝你好运”。基本上可以在字典中找到任何东西。如果我们将限制限制为 5 个字母,长度还可以,我不介意学习如何?
什么是词?我想你的意思是只有 az 和 AZ 但什么长度?liwyduglashvdbalishfvgapivflakhf 会是一个词吗?ksjdas-asd-asd-asd 怎么样?- 可以用语言表达。请编辑并澄清。– 昨天的特登
生成随机字母字符。
tr -cd '[:alpha:]' < /dev/urandom | fold -w1 | head -n1
Run Code Online (Sandbox Code Playgroud)
生成一个长度为 10 个字符的随机字母字符串。
tr -cd '[:alpha:]' < /dev/urandom | fold -w10 | head -n1
Run Code Online (Sandbox Code Playgroud)
一些用于代替alpha
in的替代 POSIX 字符类[:alpha:]
是:
alnum - 字母数字字符
alpha - 字母字符
digit - 数字
图形 - 可见字符
小 - 小写字符
大写 - 大写字符
生成特定范围内的随机数(示例 1-10)。
shuf -i 1-10 -n1
Run Code Online (Sandbox Code Playgroud)
与前两个 bash 示例相比,该shuf
命令提供的用于生成随机字符串的选项较少,但shuf
可用于生成随机排列。
Run Code Online (Sandbox Code Playgroud)dd if=/dev/urandom of=a.log bs=1M count=2
这不会给你随机数。这给你随机字节。您可以将其编码为数字:
hexdump -v -e '"%d\n"' /dev/urandom | dd of=a.log bs=1M count=2
Run Code Online (Sandbox Code Playgroud)
(较早的版本使用od
,但od
的输出格式相当不灵活。)
/dev/random
直接使用可能相当浪费,因为它是一个字节流。您可以将其编码为base64
,然后去除非字母表,这仍然可以让您平均获得 80% 的输入数据:
base64 /dev/urandom | tr -cd '[[:alpha:][:space:]]'
Run Code Online (Sandbox Code Playgroud)
这往往会留下相当长的线路。相反,您可以用换行符替换数字:
base64 /dev/urandom | sed 's/[^[:alpha:]]\+/\n/g'
Run Code Online (Sandbox Code Playgroud)