这样写:20120204235900
表示:2012 02 04 23:59:00,或4/Feb/2012 at 23:59:00
我有几千个这样的,我想把它们改成这样:例如:2012/02/04 23:59:00。
我知道我可以做一个Java程序,但必须有一个简单的方法,用一些文本编辑器做到这一点。
任何想法?
在notepad++中你可以这样做:
([12]ddd)(dd)(dd)(dd)(dd)(dd)
我在开始时检查1或2是否有一点日期验证,如果不需要,那么就用d
替换[12]
并替换为
1/2/3 4:5:6
将"20120204235900"转换为"20120204 23:59:00"
技巧是使用1
(称为反向引用)访问括号中的子匹配。因此,第1组是2
中第一对括号的内容,即第二对括号的匹配。
有了这个,重新排序子匹配没有问题,但是用February
替换02
需要更复杂的逻辑。我认为这在编辑器中是不可能的。
注意:这只是测试以1或2开头的14个数字,所以它不会验证数字序列是否是有效的日期/时间!
我会用notepad++。
就像这样使用正则表达式替换:
([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9][0-9])
并替换为
1/2/3 4:5:6
您可以使用sed(流编辑器),它通常在任何*nix系统上都可用。这一行应该可以工作:
sed -e "s/^([0-9]{4})([0-1][0-9])([0-3][0-9])([0-2][0-9])([0-6][0-9])([0-6][0-9])/1/2/3 4:5:6/g" <filename>