linux shell环境下处理yml文件

需要安装工具yq

sudo pip install yq

这里我使用pip3指定源安装

sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple yq

1. 读取文件内容:

我使用的版本是yq 3.2.3,以下命令执行会报错:
 

yq r chainmaker.yml .blockchain
yq r chainmaker.yml blockchain
yq e '.blockchain' chainmaker.yml

yq: error: argument files: can't open

经过分析,正确的语法命令如下:
 

cat chainmaker.yml | yq ".blockchain"
yq ".blockchain" chainmaker.yml

2. 转换成json文件

yq '.' chainmaker.yml >>chainmaker.json
yq eval -o=json chainmaker.yml >chainmaker.json 

要安装4.0以上的版本,使用:
访问yq - yq

 GitHub - mikefarah/yq: yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor

 Release v4.35.2 - Minor fixes · mikefarah/yq · GitHub

下载最新的版本 

解压可以直接使用,也可以配置成默认:

可以使用4.0版本执行以下命令,修改yml文件的内容:

#  输出到另一个文件
./yq eval '.tx_filter.sharding.snapshot.type = 3' chainmaker.yml > config_new2.yml
# 修改当前文件
yq -i eval '.tx_filter.sharding.snapshot.type = 3' chainmaker.yml
# 在type下增加type的子项配置
yq -i eval '.tx_filter.sharding.snapshot.type = {"length": 1000}' chainmaker.yml
# 增加与type平级的配置
yq -i eval '.tx_filter.sharding.snapshot += {"length": 10000}' chainmaker.yml

# 删除键值对:
yq -i eval 'del(.tx_filter.sharding.snapshot.type)' chainmaker.yml

# 处理字符串:
yq -i eval '.txpool.pool_type="normal"' ./chainmaker.yml

# 增加键值对配置:
yq eval '.consensus.ext_config = [{"key": "TBFT_blocks_per_proposer", "value": "100000000"}]' bc1.yml -i

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用docker-compose.yml文件shell脚本可以实现一键部署应用的思路如下: 首先,我们需要编写docker-compose.yml文件。这个文件是用来定义应用的服务的配置和依赖关系的。我们可以在该文件中指定要运行的容器,每个容器的配置以及它们之间的网络和依赖关系。比如,我们可以定义一个web服务容器,一个数据库容器和一个缓存容器等等。在每个服务的配置中,我们可以指定容器镜像、端口映射、环境变量等。 接下来,我们可以编写一个shell脚本来自动化部署过程。脚本可以先检查是否已安装docker和docker-compose工具,如果没有安装则自动安装它们。然后,脚本可以调用docker-compose命令来启动、停止或重启我们在docker-compose.yml文件中定义的服务。我们还可以在脚本中添加一些其他的命令,如清理旧的容器或镜像、查看容器状态等。 最后,我们可以将docker-compose.yml文件shell脚本打包成一个压缩文件,方便在其他环境中使用。当我们想要在另一台机器或另一个环境中部署应用时,只需将该压缩文件传输到目标机器,并解压缩。然后,在目标机器上运行shell脚本,它将自动安装docker和docker-compose,并根据docker-compose.yml文件中的配置启动应用的容器。 使用docker-compose.yml文件shell脚本可以大大简化应用的部署过程。它们提供了一种可重复、可扩展的方式来部署应用,减少了手动操作的错误和时间。同时,它们也提供了一种标准化的部署方式,方便团队协作和维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值