複数のファイルで時間文字列の形式を再指定するには?

複数のファイルで時間文字列の形式を再指定するには?

私のファイルには次の行が含まれています

15.07.2015 12:24:47; +107.117 ; +106.925 ; +17.179 ; +102.099 ; +16.151

最初のものは非標準形式のタイムスタンプです。これを次の形式にインライン化するにはどうすればよいですか?

2015-07-15 12:24:47; +107.117 ; +106.925 ; +17.179 ; +102.099 ; +16.151

答え1

適切なパターンでSEDを使用し、
s#([0-9]{2})\.([0-9]{2})\.([0-9]{4})#\3-\2-\1#
必要に応じて行アンカーの開始を一致させることでより強力にすることができます。

答え2

Perl one-linerを使うもう一つの方法は次のとおりです。

$ perl -i -ne 's/^(\d{2})\.(\d{2})\.(\d{4})/$3-$2-$1/; print' in.txt
$ cat in.txt    
2015-07-15 12:24:47; +107.117 ; +106.925 ; +17.179 ; +102.099 ; +16.151

関連情報