首页 > 解决方案 > 从字符串 JQ 的一部分中删除双引号

问题描述

我无法从传递给 JQ 的日期中删除双引号。知道我该怎么做吗?-r 似乎没有奏效。

curl SOMETHING | jq -r --arg date $(date +"%s") '.payload.overallStatus | [$date, .totalTimeSpent, .totalRecords, .totalDuplicates]'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   607  100   607    0     0  10649      0 --:--:-- --:--:-- --:--:-- 10649
[
  "1594330317",
  15802,
  89004346,
  10
]

(我计划添加 | @csv 选项将输出转换为一行 csv)

标签: bashjq

解决方案


使用tonumber. 您需要使用括号不要更改数组其余元素的上下文。

[($date | tonumber), .totalTimeSpent, .totalRecords, .totalDuplicates]

没有括号,表达式等价于

[$date | (tonumber, .totalTimeSpent, .totalRecords, .totalDuplicates)]

推荐阅读