ファイルのタイムスタンプ形式を変更する

ファイルのタイムスタンプ形式を変更する

以下のようにタイムスタンプ形式を含むファイルがあります。

'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

データを保存するには、新しいファイルにリダイレクトしてください。ファイルを内部編集するには、まず編集が正しく行われていることを確認し(コマンドは各行にこれらのタイムスタンプが1つ以上または1つ以上ないと仮定します)sed -i。ファイルを変更するには。

関連情報