我有一個 4GB 的 JSON 檔案,其中有多個日期欄位。日期格式為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 腳本,但 node 或 python 也可以使用。
PS:正則運算式作業正常
uj5u.com熱心網友回復:
這看起來像是零長度斷言可能有用的任務,請考慮以下示例python:
import re
txt = "something 2021-10-15T06:02:50.455Z something"
clean = re.sub(r'(?<=\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d)\.\d Z','',txt)
print(clean)
輸出
something 2021-10-15T06:02:50 something
說明:只需洗掉\.\d Z描述您想要保留的日期時間部分的模式之后。請注意,我使用了所謂的原始字串來使轉義更容易,請參閱re模塊檔案以進行進一步討論。請注意,.需要將其隔開,因為它表示文字點。\d表示任何數字。此解決方案可能會重新設計為任何支持正向后視斷言的正則運算式工具。
uj5u.com熱心網友回復:
一個簡單的sed將是
sed -Ei 's/(T[0-9]{2}:[0-9]{2}:[0-9]{2})[.][0-9]{3}Z/\1/g' file
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/335121.html
下一篇:Linux-無法遞回洗掉大目錄
