JQ:我可以在代码本身中使用参数的名称吗? [英] jq: Can I use the name of an argument in the code itself?
本文介绍了JQ:我可以在代码本身中使用参数的名称吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有什么方法可以在代码中使用参数名称吗?
例如,此命令:
jq -n --arg name value '{($name): $name}'
具有以下输出:
{
"value": "value"
}
是否可以获得此输出?:
{
"name": "value"
}
推荐答案
如果删除($name):
,JQ将使用该名称作为密钥回退:
$ jq -n --arg name value '{$name}'
{
"name": "value"
}
$
来自jqFrequently Asked Questions:
Notable Differences between Versions
𝑸:
{"x": $x}
的缩写{$x}
是在哪个版本中引入的?版本1.5
来自对象构造({}
)documentation:
该值可以是应用于
所有筛选器都有一个输入和一个输出。{}
表达式输入的任何表达式(例如,如果它包含冒号,则可能需要将其括在括号中)。如果给定JSON对象{foo: .bar}
{"bar":42, "baz":43}
作为其输入,将生成JSON对象
{"foo": 42}
。您可以使用它来选择对象的特定字段:如果输入的是具有用户、标题、ID和内容字段的对象,并且您只需要用户和标题,则可以编写{user: .user, title: .title}
因为这很常见,所以有一种快捷的语法来表示:
{user, title}
这篇关于JQ:我可以在代码本身中使用参数的名称吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文