创建随机非单词

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 怎么样?- 可以用语言表达。请编辑并澄清。– 昨天的特登

kar*_*rel 8

生成随机字母字符。

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)

一些用于代替alphain的替代 POSIX 字符类[:alpha:]是: alnum - 字母数字字符
alpha - 字母字符
digit - 数字
图形 - 可见字符
小 - 小写字符
大写 - 大写字符

生成特定范围内的随机数(示例 1-10)。

shuf -i 1-10 -n1  
Run Code Online (Sandbox Code Playgroud)

与前两个 bash 示例相比,该shuf命令提供的用于生成随机字符串的选项较少,但shuf可用于生成随机排列。


mur*_*uru 7

dd if=/dev/urandom of=a.log bs=1M count=2
Run Code Online (Sandbox Code Playgroud)

这不会给你随机数。这给你随机字节。您可以将其编码为数字:

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)