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