我正在使用yq将YAML转换为JSON。转换文件后,它看起来像这样:
{
"Profiles": {
"OneOrgOrdererGenesis": {...
},
"chan": {...
}
}
“个人档案”中对象的两个名称都会根据情况而改变,因此我无法按名称查找它。我想获取Profiles对象(chan)中第二个对象的名称。如何使用Bash和yq使其成为可能?
答案 0 :(得分:1)
下面是从yaml文件中提取它的命令行:
mongodb
这是已转换文件的相同方法:
yq r -j zz.yaml Profiles | jq -r 'keys[]'|head -2|tail -1
如果在以下文件上运行,两者都将产生“ SECOND-KEY”值:
zz.yaml:
jq -r .Profiles zz.json | jq -r 'keys[]'|head -2|tail -1
zz.json:
Profiles:
TTT:
- dfdfd
- dsdwee
SECOND-KEY:
sd:
- sddsd
DEE:
- ds d
- er er
第一个命令将提取配置文件的所有子项。
第二个命令提取子级的顶级键。