我想在JSON对象中的特定数组中找到值时使用jq
输出文件名。我实际上是尝试使用jq
作为一个JSON感知的grep
来查找感兴趣的文件。
文件中的JSON数据示例:
{
"data": {
"tags": [
"value1", "value2"
]
}
}
我想得到tags[value1]
存在时的文件名。
我试了这些:
$ jq '.data.tags | select(any(index("value1"))) | file_name' -- *.json
$ jq '.data.tags | select(. == "value1") | file_name' -- *.json
但我收到一个错误:“jq:错误:file_name/0未在第1行定义”
如何纠正此错误?
1条答案
按热度按时间o2g1uqev1#
我收到一个错误:“jq:错误:file_name/0未在第1行定义”
过滤器名为
input_filename
(参见手册)。此外,与jq 1.6+你可以使用SQL风格的运算符IN
来检查数组中是否存在一个元素。