使用jq将JSON中的数字拼接起来,不包含双引号

39

我有一些文件,每行都有一个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"

2
手头没有控制台,但您可以尝试使用--raw-output参数运行jq。 - xjedam
1个回答

61

默认情况下,jq将其输出格式化为有效的JSON值。这意味着字符字符串被包含在引号中。

幸运的是,--raw-output-r 参数覆盖了该行为,因此您的字符串输出可以不带这些令人讨厌的引号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接