json - 用 jq 替换字符串

我有以下文件file.txt:

{"a": "a", "b": "a", "time": "20210210T10:10:00"}
{"a": "b", "b": "b", "time": "20210210T11:10:00"}

我用 bash 命令 jq 提取值(我在 100g 的大文件上使用这个命令):

jq -r '[.a, .b, .time] | @tsv'

这会返回良好的结果:

a        a        20210210T10:10:00
b        b        20210210T11:10:00

我想要的输出是:

a        a        2021-02-10 10:10:00
b        b        2021-02-10 11:10:00

问题是我想以最有效的方式更改日期格式。 我该怎么做?

最佳答案

在sed中可以,也可以在jq中直接调用sub:

jq -r '[.a, .b,
           ( .time 
             | sub("(?<y>\\d{4})(?<m>\\d{2})(?<d>\\d{2})T";
                   .y+"-"+.m+"-"+.d+" ")
           )
       ] | @tsv'

https://stackoverflow.com/questions/67402313/

相关文章:

javascript - 这些 ES6 import 语句之间有什么区别?

r - 使用数值条件对一系列列进行编码

python - 如何处理来自 binance websocket 的多流数据?

mongodb - 使用 GridFS 在 MongoDB 中存储图像是否有效?

java - 正则表达式仅包含数字且不包含仅 0

javascript - 使用 ts-node 的 Typescript 声明合并无法按预期工作

javascript - 获取具有类的下一个元素(不是子元素或兄弟元素)

python - 字符串到 python 中的数组 (boto3)

c# - 如何使用c#拆分字符串

java - 就线程或不同请求而言,Spring 的 SecurityContext 行为是什么?