0
我试图同时使用SED和Python使用下面的一个HASH添加到一个配置文件(全部在同一行,在3线细分为便于阅读):如何将Python哈希插入sed查询并写入文件?
sed "s/SECRET_KEY.*/SECRET_KEY = $(python -c 'import crypt,getpass;
print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA256)))')/"
settings.py > settings.tmp
我不断收到这标准输出消息:
sed: -e expression #1, char 60: unknown option to `s'
然而,当我运行:
sed "s/SECRET_KEY.*/SECRET_KEY = $(python -c 'import crypt,getpass;
print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA256)))')/"
settings.py |grep -i secret
这似乎返回如下:
SECRET_KEY = $5$EQq9GhgCBcL7P5kN$hnwmvYe7lBhJOxHJx768VdCjLOxpnRuTWkkzGycNP.B
为什么它会在不写入文件的情况下运行,但如果我写入文件却不行?
啊,你是对的,很好找!我甚至没有想到嵌入的'/'字符。 Python很棒,但这只是BASH脚本的一小部分。我最终使用'$(cat/dev/urandom | tr -dc'a-zA-Z0-9'| fold -w 32 | head -n 1)'代替。 – hobbes