【发布时间】:2020-12-29 02:12:04
【问题描述】:
哦,我无法通过这个 SED 正则表达式。第一条记录中的这一行 "entrytimestamp" : ISODate("2020-09-09T16:07:34.526Z") 也应进行转换,但由于右括号后没有逗号,因此它是不是。只是我想删除 "ISODate(" 和右括号 ")"。但它是否是最后一个元素并不重要。我已经两次/三次检查了正则表达式,但我遗漏了一些东西。有人知道吗?
root@# cat inar.json
[
{
"_id" : ObjectId("5f58fdc632e4de001621c1ca"),
"USER" : null,
"entrytimestamp" : ISODate("2020-09-09T16:07:34.526Z")
},
{
"_id" : ObjectId("5f590118c205630016dcafb4"),
"entrytimestamp" : ISODate("2020-09-09T16:21:44.346Z"),
"USER" : null
}
]
sed -E "s/(.+\"entrytimestamp\"\s:\s)ISODate\((\"[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{1,3}Z\")\)(.+)/\1\2\3/" inar.json
[
{
"_id" : ObjectId("5f58fdc632e4de001621c1ca"),
"USER" : null,
"entrytimestamp" : ISODate("2020-09-09T16:07:34.526Z")
},
{
"_id" : ObjectId("5f590118c205630016dcafb4"),
"entrytimestamp" : "2020-09-09T16:21:44.346Z",
"USER" : null
}
]
【问题讨论】: