如何用命令将extra_conf.ini内容插入confi.ini的[app:main]段下?
如何将另一个配置文件内容插入到指定INI段的开头
你可以使用sed命令实现需求,将extra_conf.ini的内容插入到confi.ini中[app:main]段声明的下一行,同时保留原段内的内容在插入内容之后。
实现命令
sed '/^\[app:main\]$/r extra_conf.ini' confi.ini > expected_confi.ini
命令解释
/^\[app:main\]$/:正则表达式精确匹配[app:main]所在的行(^匹配行首,$匹配行尾,\[和\]转义特殊字符,避免被正则解析为字符组)r extra_conf.ini:当匹配到目标行时,读取并插入extra_conf.ini的全部内容到该行之后confi.ini:待修改的源配置文件> expected_confi.ini:将处理后的结果输出到目标文件expected_confi.ini
直接修改原文件(可选)
如果不需要保留原文件,想要直接修改confi.ini,可以使用sed的原地编辑参数-i:
- GNU sed(Linux系统):
sed -i '/^\[app:main\]$/r extra_conf.ini' confi.ini - BSD sed(macOS系统):需要指定备份后缀(比如
.bak),会自动生成原文件的备份:sed -i.bak '/^\[app:main\]$/r extra_conf.ini' confi.ini
效果验证
执行命令后,expected_confi.ini的内容将完全符合预期:
[DEFAULT] ## Default settings ###################### debug = false [app:main] security.host=localhost security.username=test security.password=test12345 abc=def ghfi=kftest ## General settings ###################### use=hello test1.test2=test3 [logger] level=INFO handlers=console
内容的提问来源于stack exchange,提问作者xxestter
相关产品推荐
相关产品推荐

