JQ:我可以在代码本身中使用参数的名称吗? [英] jq: Can I use the name of an argument in the code itself?

查看:14
本文介绍了JQ:我可以在代码本身中使用参数的名称吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有什么方法可以在代码中使用参数名称吗?

例如,此命令:

jq -n --arg name value '{($name): $name}'

具有以下输出:

{
  "value": "value"
}

是否可以获得此输出?:

{
  "name": "value"
}

推荐答案

如果删除($name):,JQ将使用该名称作为密钥回退:

$ jq -n --arg name value '{$name}'
{
  "name": "value"
}
$

来自Frequently Asked Questions
Notable Differences between Versions

𝑸:{"x": $x}的缩写{$x}是在哪个版本中引入的?

版本1.5


来自对象构造({})documentation

该值可以是应用于{}表达式输入的任何表达式(例如,如果它包含冒号,则可能需要将其括在括号中)。

所有筛选器都有一个输入和一个输出。

{foo: .bar}
如果给定JSON对象{"bar":42, "baz":43}作为其输入,

将生成JSON对象{"foo": 42}。您可以使用它来选择对象的特定字段:如果输入的是具有用户、标题、ID和内容字段的对象,并且您只需要用户和标题,则可以编写

{user: .user, title: .title}

因为这很常见,所以有一种快捷的语法来表示

{user, title}

这篇关于JQ:我可以在代码本身中使用参数的名称吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆