取代文件中的時間戳格式

取代文件中的時間戳格式

我有一個包含時間戳格式的文件,如下所示。

'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它來更改文件。

相關內容