我有 2 个文件:oldfile 和 newfile,它们的结构相似,它们只包含细微的变化
我需要用旧文件中的一个块替换新文件中的一个文本块(作为 bash 脚本)
在旧文件中,我有:
... 文本
#######################################################################
# LDAP Settings
LDAPUrl = ldap://xxx
LDAPSearchBase = CN=Users,DC=xx,DC=xxx,DC=xx
LDAPSearchSecondary = ***
LDAPSearchFilter = cn=xxx
LDAPUser = CN=***,CN=Users,DC=xx,DC=xxx,DC=xx
LDAPPassword = ***
LDAPAuthenticateServer = ldap://test:389
ProsourceKey = ****
#######################################################################
... 其他文字
newfile 是相同的,仅更改了参数值。
我使用 sed 从 oldfile 中获取此输出,如下所示:getldap= sed -n '/^# LDAP Settings$/,/^$/p' oldfile > ldap.tmp
(它存储在 ldap.tmp 中)
使用了分隔符:# LDAP Settings 和包含空格的空行
现在我想将该输出插入 newfile 并替换现有的类似文本。