我用这样一个很小的文件测试了"jq -seq“
jq --seq ".title, .id" test.jsontest.json是这样:
{"title": 3, "id":4}
{"title": 3, "id":4}
{"title": 3, "id":4}我犯了个错误。除了此错误外,jq不会输出任何内容。
ignoring parse error: Unfinished abandoned text at EOF at line 4, column 0如何正确使用jq -seq?
发布于 2019-11-20 20:30:22
--seq格式要求每个值前面加上ASCII字符(12月30日/十六进制1E)
使用
application/json-seqMIME类型方案来分离jq的输入和输出中的JSON文本。这意味着在输出的每个值之前打印ASCII RS (记录分隔符)字符,在每个输出后打印ASCII LF (行馈送)。无法解析的输入JSON文本被忽略(但警告),放弃所有后续输入直到下一个RS。此模式还将分析jq的输出,而不使用--seq选项。
如果将这些字符添加到文件中,它就能工作。
txt = <<~JSON
\x1e{"title": 1, "id":2}
\x1e{"title": 3, "id":4}
\x1e{"title": 5, "id":6}
JSON
File.write('test.json', txt)然后
% jq --seq ".title, .id" test.json
1
2
3
4
5
6但看起来你根本不需要这个选择?接受您的文件(没有RS字符)并将其输入jq ".title, .id" test.json会产生相同的结果。
https://stackoverflow.com/questions/58962616
复制相似问题