使用 jq 连接 JSON 中没有双引号的数字
Concat numbers from JSON without doublequotes using jq
我的文件每行有 1 个 json 个文档,每个文档中有字段 start_id
和 end_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"
默认情况下,jq
将其输出格式化为有效的 JSON 值。这意味着字符串用引号引起来。
幸运的是,--raw-output
或 -r
parameter overrides 这种行为使您的字符串输出可以没有那些讨厌的引号。
我的文件每行有 1 个 json 个文档,每个文档中有字段 start_id
和 end_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"
默认情况下,jq
将其输出格式化为有效的 JSON 值。这意味着字符串用引号引起来。
幸运的是,--raw-output
或 -r
parameter overrides 这种行为使您的字符串输出可以没有那些讨厌的引号。