linux - 在 Bash 中按照特定模式生成随机字符串的最佳方法

标签 linux string bash random

我想生成很多六个字符的字符串,它们都遵循这个模式:

[consonant][vowel][consonant][consonant][vowel][consonant]

例如

haplop
github
qursog

我已经研究过执行此操作的各种方法,但到目前为止我所拥有的都不是优雅的。我的想法主要围绕一次生成一个字符,但即便如此,由于我缺乏 bash 脚本知识和晦涩的 Linux 命令,我的想法并不是那么好。

理想情况下,我正在寻找一个随机生成字符串但允许我指定上面显示的模式(如果存在的话)的 Linux 命令。或者,如果您知道在 bash 中执行此操作的简单方法,那也很棒。

提前致谢

编辑:顺便说一句,我会在选择接受的答案前 24 小时给出这个答案,这样我就有更多机会选择最佳答案,而不仅仅是第一个(尽管第一个答案非常好)。

最佳答案

以下是生成元音的方法:

s=aeiou
p=$(( $RANDOM % 5))
c=${s:$p:1}

对辅音使用相同的方法。

你可以把它包装成一个小函数:

function vowel() {
    s=aeoiu
    p=$(( $RANDOM % 5))
    echo -n ${s:$p:1}
}

然后你有一个很好的模式来生成字符串:

s=`consonant; vowel; consonant; vowel; consonant; vowel`

关于linux - 在 Bash 中按照特定模式生成随机字符串的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7032547/

相关文章:

arrays - 从 bash 数组中提取 x 个随机值

linux - 尝试在 AWS EC2 的 Ubuntu 18.04 上安装 PHP 时出错

linux - jinja2.exceptions.TemplateSyntaxError : expected token ',' , 得到 'integer' (支持十六进制、八进制和二进制整数文字)

c - rm命令中pattern的含义

python - 正则表达式解析多个单词

python - 是否有一种快速算法可以删除字符串中重复的子字符串?

c++ - 关于学习 Xlib ("the Linux Petzold"的书籍/资源?)

linux - 使用linux命令在文件中的两行之间查找字符串

javascript - 如何将 HTML 转换为没有标签和特殊字符的文本?

bash - 如何将 tar 解压到其原始目录