我有以下文件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/