0

我将 yq 与 jq 一起使用,据我所知,您需要在引号和括号的键中“转义”特殊字符。我想使用纯点语法 .cars.big-trucks 查询数据,但我找不到任何可以为我进行转换的工具。

我理想的用法是:

query=$(jq-query-convert ".cars.big-trucks")
yq -r $query cars.yaml

有任何想法吗?谢谢

示例 yaml 文件:

%YAML 1.1
---

cars:
    big-trucks: 42

对于 jq 用户,一个示例 json 将是:

{
 "cars": {
  "big-trucks": 42
 }
}

查询人

cat cars.json | jq "$q"
4

1 回答 1

0

Well I came up with this python3 one-liner that serves my intentions so far but if anyone know more robust solutions I am happy to accept it.

python3 -c 'from sys import argv; print("." + argv[1].replace(".", "\"][\"")[2:] + "\"]")' ".cars.big-trucks"

returns
.["cars"]["big-trucks"]

于 2020-10-12T11:04:01.533 回答