jq只需记住
整体单引号,字段双引号,.开始,层深入,删改使用 +=,-=,=,列表用[N],字典用{},增直写,个别查,不写value
需要注意
- 键名如果有引号是一定要写的,不能少
- jq无法直接修改json文件,需要重定向
- 一般情况下无法使用变量,因为jq使用单引号,导致变量无法直接使用,但是通过--arg可以传参,jq的单引号内可以使用传参的变量
示例
{
"registry-mirrors": [
"https://kpime7o7.mirror.aliyuncs.comi",
"https://docker.1ms.run",
"https://xdark.top",
"https://docker.m.daocloud.io"
],
"exec-opts": [
"native.cgroupdriver=systemd"
]
}1.检查json格式
jq . /etc/docker/daemon.json
2.添加registry-mirrors数组中一个值
jq '."registry-mirrors" += ["docker.up.com"]' /etc/docker/daemon.json

3.删除registry-mirrors数组中一个值
jq '."registry-mirrors" -= ["https://docker.m.daocloud.io"]' /etc/docker/daemon.json

4.覆盖registry-mirrors数组
jq '."registry-mirrors" = ["harbor.A.com"]' /etc/docker/daemon.json

5.顶级.添加列表
jq '."12" += ["A","B","C"]' /etc/docker/daemon.json
![顶级.添加键值][4]6.顶级.添加字典
jq '."MASTER" += {"A":"a","B":"b","C":"c"}' /etc/docker/daemon.json

7.查看registry-mirrors第三个值
jq '."registry-mirrors"[2]' /etc/docker/daemon.json

8.使用环境变量
URL=harbor.A.com
jq --arg web "${URL}" '."registry-mirrors" += [$web]' /etc/docker/daemon.json
