如何重新格式化多个文件中的时间字符串?

如何重新格式化多个文件中的时间字符串?

我的文件包含以下几行

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

相关内容