【发布时间】:2014-09-21 04:10:35
【问题描述】:
在将 keystorePass 值从一个 server.xml 移动到另一个时,我尝试了多种方法。我对sed 不是很好,但尝试了多种方法,包括使用模式,我还使用 grep 将带有密钥库密码的特定行移至空白文件并将该行移动到新的 server.xml 但这不起作用任何一个。每个人都可能已经知道server.xml 通常包含什么,但这里是我需要修复的部分的示例。
**
keystoreFile="/etc/blank"
keystorePass="BLAH" sslProtocol = "TLS" />
**
现在,当我们交付构建时,我们拥有自己的一组 server.xml,它仅适用于我们的服务器,但当我们的用户部署它时,他们使用不同的 keystorePass。我只是在构建完成后将它移回文件的位置,但有时我们需要对文件进行一些编辑,因此必须替换它。
总而言之,我需要server.xml1中keystorePass=之后的密码来替换server.xml2中的密码
server.xml1 (Test)
keystoreFile="/etc/blank/"
keystorePass="BadPassword" sslProtocol = "TLS" />
server.xml2 (Customer)
keystoreFile="/etc/blank/"
keystorePass="GoodPassword" sslProtocol = "TLS" />
【问题讨论】:
-
能否请您发布您尝试过的
sed命令? -
我使用 grep 来获取 keystore pass 行的模式并将其放入 test.xml 文件中。然后使用 sed 我似乎无法在包括“”在内的等号之后得到。我使用了以下内容并获得了 keystorePass。 sed 's/.*=//' test.xml。之后的问题是我如何将该输出发送到另一个 server.xml 以替换该密码。