我了解jq搜索需要被{}
阻止,并且密钥需要包含"
,例如:
{
"id": 36815684
}
但如果我有这样的话:
X-RateLimit-Reset: 1452786798
我收到此错误:
解析错误:第1行第9列的数字文字无效
我是否需要回归sed/awk/perl ..
或者是否有更优雅的方式使用jq?
答案 0 :(得分:3)
除了根本不使用jq之外,你还有两个主要选择:
(1)预处理非JSON以使其成为JSON
(2)使用-R命令行选项,例如
echo "X-RateLimit-Reset: 1452786798" | jq -R 'split(":")'
[
"X-RateLimit-Reset",
" 1452786798"
]
因此,如果您知道该值将是数字:
echo "X-RateLimit-Reset: 1452786798" |
jq -Rc 'split(":") | {(.[0]) : (.[1]|tonumber)}'
{"X-RateLimit-Reset":1452786798}
请注意,虽然" j"在jq中是JSON,jq(使用-R选项)对文本处理很好。