首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要帮助用jq的输出更新时间元素吗?

需要帮助用jq的输出更新时间元素吗?
EN

Stack Overflow用户
提问于 2022-02-09 23:57:06
回答 2查看 84关注 0票数 0

具有建议格式的当前对象

代码语言:javascript
运行
复制
[
  {
    "time": "2022-01-28T17:50:31.620Z"
  }
]

命令执行,以便从iso8601转换为unix

(“.0-9+Z$”;"Z")从日期‘time_test.json’开始

输出1643392231

我尝试过不同的组合,但是如何更新对象中的时间值。我可以让转换开始工作,但似乎无法用输出更新值。

预期结果-

代码语言:javascript
运行
复制
[
  {
    "time": "1643392231"
  }
]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-10 00:08:00

取消小数秒,您就可以使用fromdate了。若要在regex中转义,请使用双反斜杠。

代码语言:javascript
运行
复制
jq 'map(.time |= (sub("\\.\\d+"; "") | fromdate))'
代码语言:javascript
运行
复制
[
  {
    "time": 1643392231
  }
]

演示

票数 0
EN

Stack Overflow用户

发布于 2022-02-10 02:26:13

您映射了数组中的所有值,但实际上并不是在修改或重新创建数组。

要修改,使用一个赋值:(你已经快到了)

代码语言:javascript
运行
复制
.[].time |= (sub("\\.\\d+Z$"; "Z") | fromdate)

要重建地图就行了。

代码语言:javascript
运行
复制
map(.time |= (sub("\\.\\d+Z$"; "Z") | fromdate))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71058266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档