我有一個包含時間戳格式的文件,如下所示。
'2020-03-07T14:42:36Z UTC [ db=dev user=rdsdb pid=16913 userid=1 xid=5326 ]' LOG: SET statement_timeout TO 120000
我想將此時間戳格式更改為
2020-03-07 14:42:36 UTC
在這個文件中。
這是一個日誌文件,我無法直接更改格式,並且它有數十億行。
答案1
sed -e 's/T/ /' -e 's/Z//' file
或者,等價地,
sed 's/T/ /; s/Z//' file
首先T
用空格替換檔案每行的第一個字符,然後刪除第一次出現的Z
.這將轉換
'2020-03-07T14:42:36Z UTC [ db=dev user=rdsdb pid=16913 userid=1 xid=5326 ]' LOG: SET statement_timeout TO 120000
進入
'2020-03-07 14:42:36 UTC [ db=dev user=rdsdb pid=16913 userid=1 xid=5326 ]' LOG: SET statement_timeout TO 120000
重定向到新檔案以保存資料。如果您要對文件進行就地編輯,請先確保編輯似乎正確執行(該命令假定每行上不會多且不少於一個這樣的時間戳記),然後您可以使用sed -i
它來更改文件。