keys
- это встроенная функция в jq
, когда объект передается, возвращает его ключи в массиве. Так что это на самом деле не является частью вашего yaml (не собственность), что означает, что вы не можете сделать services.keys
.
Для получения ключей вы можете сделать следующее:
Мы получим объект services
в первой части, затем передадим его keys
, который вернет список ключей на основе данного объекта
cat docker-compose.yml | yq '.services | keys'
Или вот так ( без кота и трубы ):
yq '.services | keys' docker-compose.yml
Вывод будет:
[
"apache",
"mysql",
"php"
]
Чтобы избавиться от скобок:
yq '.services | keys[]' docker-compose.yml
Выход:
"apache"
"mysql"
"php"
Для получения более подробной информации вы можете проверить Встроенные операторы и функции в jq
. Обратите внимание, что yq
- это оболочка для jq
, поэтому документация jq
будет полезна, как рекомендует yq
.