我正在运行一个curl Rest-api 调用并尝试在UBUNTU 中添加一些键/值对。这是我当前的命令:
curl ..... | jq -c '{"online": .switches.optional.online, "offline": .switches.optional.offline}'
Run Code Online (Sandbox Code Playgroud)
我收到的输出如下:
{ "online": 85, "offline": 196 }
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是让当前时间戳包含 json 正文,就像:
{ "current-time": "Wed Apr 15 14:18:42 PDT 2020", "online": 85, "offline": 196 }
Run Code Online (Sandbox Code Playgroud)
API响应体没有当前时间戳消息,这可以由jq本身触发吗?
谢谢。
杰克
jq 有now
内置的:
TZ=UTC jq -n 'now | strftime("%a %b %d, %Y %Z %H:%M:%S")'
"Wed Apr 15, 2020 UTC 21:51:07"
Run Code Online (Sandbox Code Playgroud)
请注意,环境变量 TZ 将影响 生成的字符串的 %Z 部分strftime
,但不会影响数字时间部分:
TZ=Australia/Sydney jq -n 'now | strftime("%a %b %d, %Y %Z %H:%M:%S")'
"Wed Apr 15, 2020 AEST 21:52:19"
Run Code Online (Sandbox Code Playgroud)
相比之下,strflocaltime
jq 和 gojq(jq 的 Go 实现)的函数都将呈现相对于 TZ 的“本地时间”:
$ gojq -n 'now | strflocaltime("%a %b %d, %Y %Z %H:%M:%S")'
"Wed May 04, 2022 EDT 17:39:48"
$ TZ=Australia/Sydney gojq -n 'now | strflocaltime("%a %b %d, %Y %Z %H:%M:%S")'
"Thu May 05, 2022 AEST 07:40:00"
$ TZ=Australia/Sydney jq -n 'now | strflocaltime("%a %b %d, %Y %Z %H:%M:%S")'
"Thu May 05, 2022 AEST 07:40:00"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3106 次 |
最近记录: |