替换文件中的时间戳格式

替换文件中的时间戳格式

我有一个包含时间戳格式的文件,如下所示。

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

相关内容