我得到了下面的字符串,我想把它转换成一个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@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
}
]有人能帮帮忙吗?我需要在空格上拆分字符串,我知道这是可能的,但我不知道确切的语法。
发布于 2021-01-05 18:38:07
我想通了。
jq --slurp --raw-input 'split("\n")[:-1] | map({email: split(" ")[1], free: split(" ")[0], used: 0})'发布于 2021-01-06 04:20:17
在可能的情况下避免“发出声音”几乎总是更好的,而且只在空格上拆分一次会更有效率:
jq -R '
[splits(" +")]
| {email: .[1],
free: (.[0] | tonumber),
used: 0 }
' input.txthttps://stackoverflow.com/questions/65577049
复制相似问题