我知道我可以用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
我没有投票,但想知道预期的产出或投入的努力在哪里? –