我的文件包含以下几行
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 单行代码的另一种方法......
$ 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