我的文件每行包含1个json文档,每个文档中包含start_id
和end_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"
答案 0 :(得分:26)
默认情况下,jq
将其输出格式化为有效的JSON值。这意味着字符串用引号括起来。
幸运的是,--raw-output
或-r
参数会覆盖该行为,因此您的字符串输出可以没有那些讨厌的引号;)