Json jq拆分字符串和映射
我得到了下面的字符串,我想将其转换为json数组Json jq拆分字符串和映射,json,jq,Json,Jq,我得到了下面的字符串,我想将其转换为json数组 2 email1@myDomain.com 1 email2@myDomain.com 3 email3@myDomain.com 这是jq命令: jq --slurp --raw-input 'split("\n")[:-1] | map({email: ., free: 0, used: 0})' 输出: [ { "email": " 2 email1@m
2 email1@myDomain.com
1 email2@myDomain.com
3 email3@myDomain.com
这是jq命令:
jq --slurp --raw-input 'split("\n")[:-1] | map({email: ., free: 0, used: 0})'
输出:
[
{
"email": " 2 email1@myDomain.com",
"free": 0,
"used": 0
},
{
"email": " 1 email2@myDomain.com",
"free": 0,
"used": 0
},
{
"email": " 3 email3@myDomain.com",
"free": 0,
"used": 0
}
]
期望输出:
[
{
"email": "email1@myDomain.com",
"free": 2,
"used": 0
},
{
"email": "email2@myDomain.com",
"free": 1,
"used": 0
},
{
"email": "email3@myDomain.com",
"free": 3,
"used": 0
}
]
有人能帮忙吗?我需要在空白处拆分字符串,我知道这是可能的,但我不知道确切的语法。我找到了答案
jq --slurp --raw-input 'split("\n")[:-1] | map({email: split(" ")[1], free: split(" ")[0], used: 0})'
我想出来了
jq --slurp --raw-input 'split("\n")[:-1] | map({email: split(" ")[1], free: split(" ")[0], used: 0})'
在可能的情况下,避免“咕噜咕噜”几乎总是更好的,而且在空间上拆分一次会更有效:
jq -R '
[splits(" +")]
| {email: .[1],
free: (.[0] | tonumber),
used: 0 }
' input.txt
在可能的情况下,避免“咕噜咕噜”几乎总是更好的,而且在空间上拆分一次会更有效:
jq -R '
[splits(" +")]
| {email: .[1],
free: (.[0] | tonumber),
used: 0 }
' input.txt