需要帮助使用 jq 的输出更新时间元素?
Need help updating time element with output from jq?
具有建议格式的当前对象
[
{
"time": "2022-01-28T17:50:31.620Z"
}
]
执行从 iso8601 到 unix 的命令
jq'.[].time | sub("\.[0-9]+Z$"; "Z") |从日期' time_test.json
输出
1643392231
我尝试了不同的组合,但如何更新对象中的时间值。我可以进行转换,但似乎无法使用输出更新值。
预期结果 -
[
{
"time": "1643392231"
}
]
取消小数秒,您可以使用 fromdate
。要在正则表达式中转义,请使用双反斜杠。
jq 'map(.time |= (sub("\.\d+"; "") | fromdate))'
[
{
"time": 1643392231
}
]
您映射了数组中的所有值,但实际上并未修改或重新创建数组。
要修改,请使用赋值:(您快到了)
.[].time |= (sub("\.\d+Z$"; "Z") | fromdate)
要重新创建,请对其进行映射。
map(.time |= (sub("\.\d+Z$"; "Z") | fromdate))
具有建议格式的当前对象
[
{
"time": "2022-01-28T17:50:31.620Z"
}
]
执行从 iso8601 到 unix 的命令
jq'.[].time | sub("\.[0-9]+Z$"; "Z") |从日期' time_test.json
输出 1643392231
我尝试了不同的组合,但如何更新对象中的时间值。我可以进行转换,但似乎无法使用输出更新值。
预期结果 -
[
{
"time": "1643392231"
}
]
取消小数秒,您可以使用 fromdate
。要在正则表达式中转义,请使用双反斜杠。
jq 'map(.time |= (sub("\.\d+"; "") | fromdate))'
[
{
"time": 1643392231
}
]
您映射了数组中的所有值,但实际上并未修改或重新创建数组。
要修改,请使用赋值:(您快到了)
.[].time |= (sub("\.\d+Z$"; "Z") | fromdate)
要重新创建,请对其进行映射。
map(.time |= (sub("\.\d+Z$"; "Z") | fromdate))