如何用JQ命令生成5位小写字母组成的随机字符串?
JQ 1.7生成随机字符串的替代方案
由于JQ 1.7确实没有内置random或rand函数,你可以借助系统自带的随机数据源来生成随机字符串,以下是两种实用方法:
类Unix系统(Linux/macOS):利用
/dev/urandom生成随机字节,再转成字符串# 生成16字节的Base64格式随机字符串 cat /dev/urandom | head -c 16 | jq -sR . # 生成32位十六进制随机字符串(16字节转十六进制) cat /dev/urandom | head -c 16 | xxd -p | jq -R .解释:
/dev/urandom是系统提供的加密安全随机源,head -c N控制随机字节长度,jq -sR .将输入的原始字节转为JSON字符串;xxd -p则把字节转成连续的十六进制字符。Windows系统:通过PowerShell生成随机字节再转格式,管道给JQ处理
powershell -Command "[Convert]::ToBase64String([System.Security.Cryptography.RandomNumberGenerator]::GetBytes(16))" | jq -R .解释:用PowerShell的加密安全随机数生成器生成16字节,转成Base64后交给JQ处理成JSON字符串。
内容的提问来源于stack exchange,提问作者Pkulkarni
相关产品推荐
相关产品推荐

