用新格式替换现有日期



我有一个4GB的JSON文件,其中有多个Date字段。"Date"的格式为2021-10-15T06:02:50.455Z。我想用简单的日期和时间替换这种格式,如2021-10-15T06:02:50

是否有办法我可以做到这一点与sed命令
sed -e 's/[1-9][0-9]{3}-[0-9]{2}-[0-1][0-9]T[0-3][0-9]:[0-9]{2}:[0-9]{2}.[0-9]{3}Z/magic_here/g' test.json

我期待着Linus脚本,但节点或python也工作。

PS: regex is working fine

这看起来像是零长度断言可能有用的任务,请考虑python中的以下示例:

import re
txt = "something 2021-10-15T06:02:50.455Z something"
clean = re.sub(r'(?<=dddd-dd-ddTdd:dd:dd).d+Z','',txt)
print(clean)

输出
something 2021-10-15T06:02:50 something

解释:只需删除.d+Z,它位于描述您想要保留的日期时间部分的模式之后。请注意,我使用了所谓的原始字符串来简化转义,请参阅re模块文档以了解进一步的讨论。注意,.需要间隔,因为它表示文字点。d表示任意数字。这个解决方案可以重新设计到任何支持正面向后看断言的regex工具。

一个简单的sed

sed -Ei 's/(T[0-9]{2}:[0-9]{2}:[0-9]{2})[.][0-9]{3}Z/1/g' file

最新更新