我知道我可以用SED做到這一點。但在我的具體任務中,它有點複雜。所以儘管本網站有很多例子,但我仍無法弄清楚。用SED查找並替換bash腳本中的字符串
我有一個配置文件與憑據。
<username><![CDATA[prefix_cms]]></username>
<password><![CDATA[complexpwd]]></password>
<dbname><![CDATA[prefix_cms]]></dbname>
我想將所有憑據更改爲新的唯一值。當我使用SED替換時,這是一個問題,因爲它將用戶名和數據庫名更改爲新值。
新的值應該是,例如:
newusername
newpassword
newdbname
我會怎麼做呢?我曾在SED中尋找過第一次出現,但由於某種原因無法工作。
我也試圖找到並替換整個行,包括XML和CDATA區,但這使得它更復雜,因爲特殊字符。
我該如何解決這個問題?
編輯:
輸出我所期待的。
<username><![CDATA[newusername]]></username>
<password><![CDATA[newpassword]]></password>
<dbname><![CDATA[newdbname]]></dbname>
尋找我看到的第一個答案我沒有很清楚我想要什麼。
EDIT2:
我發現這裏的完美解決方案:Sed regex change of file
爲什麼-1?反饋? – Akif
爲了清晰起見,您可以發佈完整的預期輸出嗎?沒有任何重疊提出任何問題,所以加入你的嘗試,以便你可以知道你錯了什麼地方......而且我也沒有倒下...... – Sundeep
我沒有投票,但想知道預期的產出或投入的努力在哪裏? –