这是我要使用的文件:
test.txt:
apiVersion: v1
data:
app_username: something
app_password: {{RANDOM}}
another_app_username: something
another_app_password: {{RANDOM}}
我目前有这个bash脚本:
test.sh:
random(){
printf $(openssl rand -base64 15) | openssl base64
}
export -f random
awk '{
gsub(/{{RANDOM}}/, system("random"), $0); printf
}' test.txt
输出:
TVQ3K0hmZmZGMTBPYW9BT0pIbzc=
apiVersion: v1QlBXZzVFNXFUdzBXNzdwdmtWc2w=
data:eDJDcUZKU1U2d1EwaWc5cVhQYUY=
app_username: somethingay93S3NTNStQKy9jVXFOUHBSZnY=
app_password: 0NTBJTUpueWRuU1VZYmlWSXZwS0k=
another_app_username: somethingdzdCWXltMytSUWRFY2RicVh5ZkI=
another_app_password: 0%
如您所见,它正在做某事。它正在删除{{RANDOM}},但没有替换它。相反,它将“随机”函数的输出放在每行的末尾。
您可以这样使用它:
awk 'function rndm(cmd, line, r) {
cmd = "random"
if ( (cmd | getline line) > 0)
r=line
close(cmd)
return r
}
{
gsub(/{{RANDOM}}/, rndm())
} 1' file
apiVersion: v1
data:
app_username: something
app_password: blBVOFduMzRLSEtSWjlRK0czT1M=
another_app_username: something
another_app_password: WWtZb1dWN2tnN0NwZEo1NTB2ZHE=
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句