我读的是the jq manual,上面写着:

-f filename / --from-file filename:

从文件中读取筛选器,而不是像awk的命令行那样从命令行读取筛选器 -f选项.您也可以使用"#"来进行注释.

我在我的命令行中键入了以下内容:

$ cat input.json | jq -rf filter.jq

我的filter.jq号档案是:

.signal[] | .name
# .signal[] | select(.name | contains("signal")) as $matches

这给了我一个错误:

$ cat input.json | jq -rf filter.jq 
jq: error: syntax error, unexpected INVALID_CHARACTER, expecting $end (Unix shell quoting issues?) at <top-level>, line 1:

jq: 1 compile error

如果将\附加到第一行的末尾,则会得到不同的错误:

$ cat input.json | jq -rf filter.jq 
jq: error: syntax error, unexpected INVALID_CHARACTER, expecting $end (Unix shell quoting issues?) at <top-level>, line 1:
                  \
jq: 1 compile error

我也试了\\次,结果也差不多.

我发现的唯一解决办法是将这两行合并为一行.但这限制了我记录我的过滤器并将该文件用作实验的playground 的能力.如何在JQ过滤器文件中使用多行?


注:我已经在Cygwin和WSL上try 了这一点,并得到了相同的结果.

推荐答案

您的filter.jq包含DOS行结尾.使用dos2unix实用程序go 除它们或使用Windows版本运行您的脚本;releases page中的jq-win64.exe在Cygwin和WSL2上都可以很好地工作.

Json相关问答推荐

Vega通孔信号中的动态梯度

如何使用表键名称GROUP_BY

如何在JQ过滤器文件中使用多行?

通过在织女星简化图上裁剪来显示文本

在MongoDB中检索某个月份和年份的JSON文档

有没有办法让serde_json正确/不正确地处理NaN、inf和-inf(IEEE 754特殊标准)?

如何在Swift中使用JSON编码器的泛型

使用 jolt 变换压平具有公共列 JSON 的复杂嵌套

如何将 XML 转换为 PsCustomObject 以允许最终导出为 JSON?

SwiftUI:如何使用 0 索引数组键为 JSON 添加类型

N1QL 聚合查询 Couchbase

应该使用什么标头将 GZIP 压缩 JSON 从 Android 客户端发送到服务器?

在 bash 中将 CSV 转换为 JSON

Python - 如何将 JSON 文件转换为数据框

了解 JSON Schema 草稿版本 4 中的additionalProperties关键字

在 JSON 编码的 HTML5 数据属性中转义/编码单引号

如何访问 JSON 对象数组的第一个元素?

使用 Codable 序列化为 JSON 时的 Swift 字符串转义

运算符不存在:json = json

JSON键是否需要唯一?