一尘不染

使用jq从JSON连号而不带双引号

json

我所拥有的文件,每行1个JSON文件和领域start_idend_id每个文件内。我想使用jq提取这些并将它们打印在同一行上。

到目前为止,我有:

cat part* | jq '"\(.start_id) \(.end_id)"' | sed s/\"//g | head

这可行,但是我需要sed删除双引号。

为了改善我的jq-foo,有没有办法在 不使用sed的情况下 做到这一点?

例如给

{"start_id":1,"end_id":50}
{"start_id":50,"end_id":99}
{"start_id":99,"end_id":12}

得到

1 50
50 99
99 12

代替

"1 50"
"50 99"
"99 12"

阅读 564

收藏
2020-07-27

共1个答案

一尘不染

默认情况下,将jq其输出格式化为有效的JSON值。这意味着字符串用引号引起来。

幸运的是,--raw-outputor -r参数会覆盖该行为,因此您的字符串输出可以摆脱那些讨厌的引号;)

资料来源:https :
//stedolan.github.io/jq/manual/

2020-07-27