jq匹配正则表达式

时间:2018-03-08 14:55:30

标签: json jq

我们说我有一个文件,我运行cat testTab.json | jq '.action.service.spec.task| select(.container) | .container'它给了我

{
  "image": "ubuntu:latest",
  "args1": "tail",
  "args2": "-f",
  "args3": "/dev/null",
  "mounts": {
    "source": "/home/testVolume",
    "target": "/opt"
  },
  "dns_config": null
}

如何编辑此命令get all args(args1,args2和args3)值(" tail"" -f"" / dev / null" )

1 个答案:

答案 0 :(得分:2)

使用以下过滤器补充 jq 管道:

jq -r 'yourfilter | to_entries 
       | map(select(.key | test("^args[0-9]+")).value) | @tsv' testTab.json

输出:

tail    -f  /dev/null

但是,如果您已经发布了最初的testTab.json内容 - 我会帮助优化您当前的过滤器。