Você poderia usar o SED com um padrão apropriado ao longo das linhas de s#([0-9]{2})\.([0-9]{2})\.([0-9]{4})#--#
Isso poderia ser mais robusto, combinando o início da âncora de linha também, se necessário.
Eu tenho arquivos com as seguintes linhas
15.07.2015 12:24:47; +107.117 ; +106.925 ; +17.179 ; +102.099 ; +16.151
O primeiro é o registro de data e hora em um formato não padrão, como posso substituí-lo para ter o seguinte formato
2015-07-15 12:24:47; +107.117 ; +106.925 ; +17.179 ; +102.099 ; +16.151
Aqui está outra maneira de usar um liner Perl ...
$ 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
Tags text-processing