首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确使用jq?

如何正确使用jq?
EN

Stack Overflow用户
提问于 2019-11-20 20:14:03
回答 1查看 925关注 0票数 0

我用这样一个很小的文件测试了"jq -seq“

代码语言:javascript
复制
jq --seq ".title, .id" test.json

test.json是这样:

代码语言:javascript
复制
{"title": 3, "id":4}
{"title": 3, "id":4}
{"title": 3, "id":4}

我犯了个错误。除了此错误外,jq不会输出任何内容。

代码语言:javascript
复制
ignoring parse error: Unfinished abandoned text at EOF at line 4, column 0

如何正确使用jq -seq?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-20 20:30:22

--seq格式要求每个值前面加上ASCII字符(12月30日/十六进制1E)

使用application/json-seq MIME类型方案来分离jq的输入和输出中的JSON文本。这意味着在输出的每个值之前打印ASCII RS (记录分隔符)字符,在每个输出后打印ASCII LF (行馈送)。无法解析的输入JSON文本被忽略(但警告),放弃所有后续输入直到下一个RS。此模式还将分析jq的输出,而不使用--seq选项。

如果将这些字符添加到文件中,它就能工作。

代码语言:javascript
复制
txt = <<~JSON
\x1e{"title": 1, "id":2}
\x1e{"title": 3, "id":4}
\x1e{"title": 5, "id":6}
JSON

File.write('test.json', txt)

然后

代码语言:javascript
复制
% jq --seq ".title, .id" test.json

1
2
3
4
5
6

但看起来你根本不需要这个选择?接受您的文件(没有RS字符)并将其输入jq ".title, .id" test.json会产生相同的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58962616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档