内置RANDOM
# 随机数0-32767
echo $RANDOM
# 随机数0-100
echo $(( RANDOM % 100 + 1 ))
# 随机数100-199
echo $(( RANDOM % 100 + 100 ))
# 随机数10w-20w
echo $((RANDOM * 10 % 100001 + 100000))
# 获取 6 位随机字符串/数字
echo $RANDOM |md5sum |cut -c 1-6 # 使用 md5sum 将随机数转换为 MD5 值,再截取n位字符即可
sort 打乱顺序
使用 sort -R 打乱顺序后按长度截取
输出0-9 6位随机数
seq 0 9 |sort -R |xargs |tr -d ' ' |cut -c -6
输出6位随机小写字母
seq 0 9 |sort -R |xargs |tr -d ' ' |md5sum |tr [0-9A-Z] [a-z] |cut -c -6
输出6位随机大写字母
seq 0 9 |sort -R |xargs |tr -d ' ' |md5sum |tr [0-9a-z] [A-Z] |cut -c -6
输出6位随机字母数字组合
seq 0 9 |sort -R |xargs |tr -d ' ' |md5sum |cut -c -6
awk 内置随机函数
使用awk内置函数:rand() 和 srand()
生成随机数 0-1
awk 'BEGIN{srand(); print rand()}'
生成随机数 1-100(int表示转换为整数)
awk 'BEGIN{srand(); print int(rand() * 100)}'
生成随机数 1w-10w
awk 'BEGIN{srand(); num=int(rand() * 100000); if(num < 10000) (num += 10000); print num}'
系统 /dev/urandom
6位 0-9 随机数
head /dev/urandom | tr -dc 0-9 | head -c 6
6位小写随机字符串
head /dev/urandom | tr -dc a-z | head -c 6
6位大写随机字符串
head /dev/urandom | tr -dc A-Z | head -c 6
6位验证码,包含数字、大写字符串、小写字符串
head /dev/urandom | tr -dc 0-9a-zA-Z | head -c 6
时间戳 date
利用时间戳生成 19 位整数
date '+%s%N'
9位随机数字
date '+%s%N' |cut -c 11-19 # 最好的随机数位最后 9 位,前面 10 位都是顺序往下走
9位随机字符串/数字
date '+%s%N' |md5sum |cut -c 11-19 # 使用 md5sum 将时间戳转换为 MD5 值,再截取n位字符即可
文章评论