【发布时间】:2019-07-10 21:24:57
【问题描述】:
我正在尝试用新的随机密码替换多个文件中的密码。 我想出了一种使用 sed 的方法来做到这一点,但问题是当我将此 sed 运行到一个文件时,它会将所有密码替换为相同的值,每个值都必须使用不同的密码。
cat admin/secrets.ini | sed -e "s/"password:\ .*"/"password:\ `openssl rand -base64 18`"/g"
sed 之前的 grep
sh-3.2# grep -i password adminsrv/secrets.ini
x_db_password: d3RBSmhykadfnvkadfWcHdDUA==
y_db_password: WXNKVFEunfvabfvlURzNFeQ==
z_password: Ymfvmidmlu
sed 之后的 grep
sh-3.2# grep -i password adminsrv/secrets.ini
x_db_password: uTtDyP7aNeONxxOD7MhFH5Eb
y_db_password: uTtDyP7aNeONxxOD7MhFH5Eb
z_password: uTtDyP7aNeONxxOD7MhFH5Eb
在这里,我希望将每个值替换为多个此类文件中的新随机值。
如果有任何其他方法可以在单个脚本中执行此操作,请提出建议。
【问题讨论】:
-
如果您有 gnu sed,请查看
s命令的e标志(仅限 gnu):gnu.org/software/sed/manual/sed.html#The-_0022s_0022-Command