テキストファイル内のタイムスタンプ変換

テキストファイル内のタイムスタンプ変換

UDBからローカルにテーブルを抽出してcsvファイル形式に変換しました。抽出後、何度も表示されたタイムスタンプがめちゃくちゃになりました。タイムスタンプ形式が表示されたときに更新するシェルスクリプトを作成したいと思います。

現在のタイムスタンプ:

2009-06-08-11.15.45.589225

必須タイムスタンプ:

2009-06-08 11:15:45.589225

sedとコマンドを試しましたが、awkファイル内の現在のタイムスタンプを識別するのは少し難しいです。

助けてください?

ベストアンサー1

これは働きます:

sed -Ei 's/([0-9]{4}-[0-9]{2}-[0-9]{2})-([0-9]{2}).([0-9]{2}).([0-9]{2}).([0-9]{6})/\1 \2:\3:\4.\5/g' filename

括弧はタイムスタンプを5つのグループに分けているため、\1は2009に置き換えられ、\2は06に置き換えられる式です。

おすすめ記事