【发布时间】:2017-12-07 15:22:25
【问题描述】:
考虑以下问题: 我们有一串从 /dev/urandom 流出的随机字符,我们希望以这样的方式处理它,以得到满足某些条件的恒定长度的字符串。 例如,如果我们运行以下命令 5 次,我们会得到:
cat /dev/urandom |tr -dc A-Z5|head -c${1:-30}
DLZEZDATSTDN55BNVDSNRFSLRKHDGR
AVCRIE5OAFBUWZZYQYQWCTAZSNMQAA
HSTFN5AQNWILXMSZCBIGREPNCFGPDM
AZJNEUQRCDYSKXMQDUHVTOFEOAYPHF
ANFDWHHZHLAGXCPKWLQESSZLEZYNDC
现在,这些字符串满足我需要的条件,但只是部分满足。 例如。我需要数字 5 在一个字符串中出现至少 2 次但不超过 7 次,并且任何字母都不应出现超过 10 次。 我应该如何自定义上面的命令来得到这个结果?
【问题讨论】:
-
使用正则表达式将其连接到某个地方,使用正则表达式检查您的条件。
-
如果某些字符串不满足条件,是否应该输出任何调试信息?