我試圖在簡單密碼文件中替換密碼。新密碼是垃圾並且是隨機生成的。sed錯誤:替換表達式中的錯誤選項
例如,這裏是一個包含根帳戶的影子文件。
root:igXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+udyyyyyyyyyyyySgY=:10933:0:99999:7:::
我有下面的表達式,其中工作3出4嘗試。
在第四次嘗試中,我得到這個錯誤「替代表達式中的sed:bad選項」。
另一次,它工作得很好。密碼被隨機生成的字符串替換。
sed -i "/root/ s/ *:[^:]*:/:"$(openssl rand -base64 32)":/ " shadow
有人可以幫忙解釋一下這個問題嗎?
感謝, 大
謝謝,這個作品很棒。 – user2019842
@ user2019842如果它幫助您解決了您的問題,請考慮接受答案。你可以通過點擊答案旁邊的勾號來做到這一點,以便它是綠色的。有關更多信息,請閱讀[this](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –
更具體地說,base64編碼可以包含'/'和'+'字符以及換行符。由於您使用'/'作爲'sed'命令的分隔符,因此base64編碼字符串中存在'/'會使其混淆...... – twalberg