String 如何使用awk将字符串替换为48个字符长的随机字母数字字符串

String 如何使用awk将字符串替换为48个字符长的随机字母数字字符串,string,bash,awk,String,Bash,Awk,目前我有一个包含2400个事件的json文件。我正在试图找到最简单的方法,用一个随机的48个字符的字母数字字符串替换visitorid 目前我有一个基本文件,其中visitorid如下所示 “访问者”:“$vids” 我希望用一个随机的48个字符的数字字符串来替换使用awk的“$vids”,之后看起来像这样 “访问者”:“777048146A3A00A43D480D5A52C00001E007B006600398Z82” 您可以使用sha散列创建随机字符串,并将其剪切到所需大小 r=$(echo

目前我有一个包含2400个事件的json文件。我正在试图找到最简单的方法,用一个随机的48个字符的字母数字字符串替换visitorid

目前我有一个基本文件,其中visitorid如下所示

“访问者”:“$vids”

我希望用一个随机的48个字符的数字字符串来替换使用awk的“$vids”,之后看起来像这样

“访问者”:“777048146A3A00A43D480D5A52C00001E007B006600398Z82”


您可以使用
sha
散列创建随机字符串,并将其剪切到所需大小

r=$(echo $RANDOM | sha256sum); echo ${r:0:48} 

9f295ada2ad453e54ea93b377178e1a151081a3887dfae6

OpenSSL
是生成随机字符串的最佳工具

vids=$(openssl rand -base64 36); echo $vids
lTAyBbCNRu5nOQfmzXtbyWGh5YS2hbiarUdcB3kRJ+sFAcSP
如果一个随机字符串足以替换所有2400个访客ID,那么您可以通过
-v vids=“$vids”
选项轻松地将随机字符串传递给
awk


但是,如果您需要每个访问者id都有一个唯一的随机字符串,那么
awk
并不是完成这项工作的最佳工具。

能否显示更多JSON?我添加了JSON文件的一行示例。
vids=$(openssl rand -base64 36); echo $vids
lTAyBbCNRu5nOQfmzXtbyWGh5YS2hbiarUdcB3kRJ+sFAcSP