Заменить формат временной метки в файле

Заменить формат временной метки в файле

У меня есть файл, содержащий формат временной метки, как показано ниже.

'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для изменения файла на месте.

Связанный контент