使用bash以递归方式合并yaml配置文件

 我从不在乎O心痛 发布于 2022-12-23 18:29

是否可以使用一些智能管道和编码,以递归方式合并yaml文件?在PHP中,我创建了一个数组(每个模块可以添加或更新系统中的/的配置节点).

目标是导出shellcript,它将所有单独的模块文件夹的配置文件合并为大合并文件.例如,它更快,更高效,客户在我们通过FTP部署新版本时不需要模块化.

它应该像PHP函数一样: array_merge_recursive

文件系统结构如下:

mod/a/config/sys.yml
mod/a/config/another.yml
mod/b/config/sys.yml
mod/b/config/another.yml
mod/c/config/totally-new.yml
sys/config/sys.yml

配置看起来像:

date:
   format:
      date_regular: %d-%m-%Y

例如,一个模块可以这样做:

date:
   format:
      date_regular: regular dates are boring
      date_special: !!!%d-%m-%Y!!!

到目前为止,我有:

#!/bin/bash
#........
cp -R $dir_project/ $dir_to/
for i in $dir_project/mod/*/
do
    cp -R "${i}/." $dir_to/sys/
done

这当然会破坏循环中所有现有的配置文件..(其余的系统文件都是唯一命名的)

基本上,我需要一个用于命令行的yaml解析器,以及一个像array_merge_recursive一样的替代方法.然后一个yaml作家输出它合并.我担心我必须开始学习Python,因为bash不会在这个上削减它.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有