我有一个包含时间戳格式的文件,如下所示。
'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
它来更改文件。