来自JSON的Concat号码没有使用jq的双引号

时间:2015-11-26 22:01:33

标签: json jq

我的文件每行包含1个json文档,每个文档中包含start_idend_id字段。我想用jq来提取它们并将它们打印在同一行上。

到目前为止,我有:

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

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

为了改善我的jq-foo,有没有办法在不使用sed 的情况下执行

e.g。给定

{"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"

1 个答案:

答案 0 :(得分:26)

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

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

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